Программа ls имеет флаг, который сортирует вывод по размеру файла

Обновлено: 25.06.2024

Команда ls выводит список всех файлов и папок в каталоге в командной строке, но по умолчанию ls возвращает список в алфавитном порядке. С помощью простого флага команды вы можете вместо этого сортировать ls по дате, показывая самые последние измененные элементы в верхней части результатов команды ls. Этот трюк применим к выводу команды ls в Mac OS / Mac OS X, Linux, BSD, а также Bash в Windows.


Флаг -t сортирует выходные данные команды ls по дате и времени последнего изменения, но для достижения наилучших результатов вы, вероятно, захотите применить его с флагом длинного списка -l и, возможно, с некоторыми другими. . Давайте рассмотрим несколько полезных способов сортировки вывода ls по дате.

Сортировка вывода ‘ls’ по дате

Флаг -t сортирует выходные данные команды ls по дате и времени последнего изменения:

  1. Откройте терминал, если вы еще этого не сделали (/Applications/Utilities/ в mac OS), и перейдите в каталог, который вы хотите отсортировать по дате, с помощью ls
  2. Введите следующий синтаксис команды:

ls sort output command by date and time

Последние измененные элементы будут показаны вверху вывода команды, а не в возвращаемом списке в алфавитном порядке.

Показать сортировку по дате, удобочитаемость, все файлы

Мое личное предпочтение для сортировки вывода ls по дате изменения состоит в том, чтобы использовать -lt, но также включать -h для удобочитаемых размеров и -a для отображения всех файлов с точечным префиксом. Это также облегчает запоминание флага -halt, который используется следующим образом:

ls sort output command by date and time

Обратное сортирование ls по дате вывода

Если вы хотите изменить порядок, чтобы самые последние измененные элементы находились внизу вывода команды ls, вы также можете добавить флаг -r следующим образом:

Выходные данные будут такими же, за исключением того, что они показаны в обратном порядке: самая старая дата изменения находится вверху, а дата и время последнего изменения — внизу.

Этот трюк, очевидно, применим к командной строке и Терминалу, но сортировка по дате и вариантам даты изменения или последней даты открытия также может быть невероятно полезной для Finder. Например, сортировка «Все мои файлы» в Finder Mac по дате последнего открытия — отличный совет, который можно аналогичным образом применить к любой другой папке, отображаемой в Finder на Mac, чтобы показать время последнего доступа к файлу или его изменения.

Есть ли какие-нибудь другие полезные советы или рекомендации по сортировке каталогов по дате? Дайте нам знать в комментариях ниже.

Вы хотите использовать du для сортировки по размеру, дате или другим свойствам?

du — это низкоуровневая программа для Linux/Unix, которая позволяет пользователю получить сводку о том, сколько дискового пространства используется файлами и каталогами. Как и в любых других стандартных программах Linux, пользователь может использовать множество опций или флагов с du для изменения вывода программы. du также может рекурсивно отображать размеры файлов и каталогов.

Эта статья покажет вам несколько способов сортировки файлов и каталогов по размеру, дате и другим свойствам с помощью команды du в сочетании с sort — еще одной стандартной программой в Linux.

du — сортировать по размеру

По умолчанию вывод du не сортируется, и для этого также нет флагов. Чтобы иметь возможность сортировать вывод du, мы должны передать его другой программе: sort .

Сортировка берет строки текста и сортирует их на основе переданных ей флагов и переключателей. Поскольку du выводит размер в начале строки, мы можем использовать параметр --numeric-sort, чтобы сортировка выполнила свою работу.

Следующая команда сортирует вывод du по размеру в порядке убывания.

Флаг -n является сокращением от --numeric-sort , который указывает sort сортировать строки в числовом порядке. Флаг -r означает -reverse , который меняет порядок сортировки по возрастанию по умолчанию .

Если вы хотите, чтобы вывод du сортировался по возрастанию, просто удалите -r, чтобы команда выглядела так:

По умолчанию du сканирует все подкаталоги и включает их в выходные данные. Если вы хотите, чтобы сканировались только прямые дочерние элементы пути, введите -d или --max-depth в команду du, как показано ниже.

Переключатель

-d позволяет вам указать, насколько глубоко вы хотите, чтобы программа du сканировала. -d=1 означает, что в вывод включаются только прямые дочерние элементы /path/to/directory.

du — отсортировать по размеру и получить 10 самых больших

Предположим, мы хотим отсортировать выходные данные по размеру в порядке убывания, а затем получить только 10 файлов и каталогов, занимающих больше всего места. Для этого может пригодиться head — еще одна стандартная программа для Linux.

Вышеуказанная команда pipe du выводит на sort , результат которой будет отсортирован в обратном порядке (по убыванию). После этого вывод передается в head , который по умолчанию обрезает его до первых 10 строк.

du — отсортировать по размеру и получить 10 самых маленьких

Если вы хотите получить список из 10 самых маленьких файлов и каталогов, вы можете использовать аналогичную команду, аналогичную приведенной выше. Единственное отличие состоит в том, что теперь мы опускаем флаг -r для сортировки вывода в порядке возрастания.

du — сортировка по размеру в удобочитаемых числах

Если вы хотите, чтобы размер вашего файла был удобочитаемым, а не просто цифрами, для этой цели у du есть ключ -h. Вам просто нужно поместить -h в команду du, прежде чем передавать ее по конвейеру для сортировки.

Или комбинируйте флаги для более быстрого набора текста:

Результаты должны выглядеть так, как показано на изображении ниже

Начиная с версии GNU coreutils 7.5, выпущенной в августе 2009 г., sort позволяет использовать параметр -h, сокращение от --human-numeric-sort , который разрешает числовые суффиксы, подобные du -h

Сортировка файлов по времени и дате

du предназначен для оценки использования файлового пространства и ни для чего другого. Чтобы иметь возможность сортировать файлы по времени/дате, нам нужно использовать ls , который перечисляет файлы в пути вместе с информацией о них.

-l указывает ls отображать каталог в формате длинного списка, что облегчает чтение.

-h – это сокращение от --human-readable , которое выводит размеры файлов и каталогов в удобочитаемой форме (например, 1 ГБ или 100 М).

-t — самая важная часть команды, вывод будет отсортирован по времени, если вы используете этот флаг.

Если вы используете Linux, вы могли заметить, что команда ls по умолчанию сортирует файлы в алфавитном порядке. Это может быть полезно, если вы хотите быстро найти определенный файл, но что, если вы хотите сначала просмотреть самые большие файлы? В этой статье мы покажем вам, как сортировать вывод команды ls по размеру файла.

3 способа сортировки по размеру в команде Linux ls:

команда ls сортирует по размеру файла с параметром -lS в Linux

Чтобы отсортировать вывод ls по размеру файла, можно использовать параметр -lS. Эти два параметра заставят ls сортировать файлы по их размеру, причем самые большие файлы будут отображаться первыми, а выходные данные будут в длинном формате.

  • -S Сортировать по размеру (сначала самый большой файл) перед сортировкой операндов в лексикографическом порядке.
  • -l (строчная буква «ell»). Список файлов в длинном формате. Он предоставит подробную информацию о файлах в столбцовом формате.

% ls -lS
total 3151032
-rw-r–r–@ 1 тестовый персонал 502801251 8 29 2021 pycharm-community-2021.2.1.dmg
-rw-r– r–@ 1 тестовый персонал 177767487 11 4 15:34 pgadmin4-6.1.dmg
-rw-r–r–@ 1 тестовый персонал 138727831 1 18 12:44 Wireshark 3.6.1 Intel 64.dmg

Ниже приведено определение столбцов.

  1. 1-й столбец — тип записи и разрешение на доступ.
  2. 2-й столбец — жесткие ссылки на файл.
  3. 3-й столбец — владелец файла
  4. 4-й столбец — группа владельца
  5. 5-й столбец — размер файлов (в байтах)
  6. 6-й столбец — дата и время
  7. 7-й столбец — имя каталога и файла

команда ls сортирует по размеру файла с параметром -lhS в Linux

Опция

-h покажет вам размеры файлов в удобочитаемом формате. Размер файла очень трудно прочитать при отображении в байтах. Команда (ls -lh) предоставит вам данные в мегабайтах, гигабайтах, терабайтах и т. д.

% ls -lhS
всего 3151032
-rw-r–r–@ 1 тестовый персонал 480M 8 29 2021 pycharm-community-2021.2.1.dmg
-rw-r– r–@ 1 tets staff 170M 11 4 15:34 pgadmin4-6.1.dmg
-rw-r–r–@ 1 tets staff 132M 1 18 12:44 Wireshark 3.6.1 Intel 64.dmg

команда ls сортирует по размеру файла с параметром -lrhS в Linux

-r Обратный порядок сортировки. Эта опция будет отображать файлы и каталоги в обратном порядке. По умолчанию команда «ls» сортирует по имени, которое является именем файла или каталога.

ls -lrhs
-rw-r–r–@ 1 персонал tocao 132M 1 18 12:44 Wireshark 3.6.1 Intel 64.dmg
-rw-r–r–@ 1 персонал tocao 170M 11 4 15:34 pgadmin4-6.1.dmg
-rw-r–r–@ 1 посох токао 480M 8 29 2021 pycharm-community-2021.2.1.dmg

  • Самые большие файлы отображаются первыми с параметром -S.
  • Имейте в виду, что -S работает только для обычных файлов (т. е. не для каталогов).

Мы надеемся, что эта статья помогла вам отсортировать выходные данные команды ls по размеру файла. Если у вас есть какие-либо вопросы или комментарии, сообщите нам об этом в разделе комментариев ниже. Спасибо за прочтение!

список имен и атрибутов файлов и каталогов

Команда

ls [ ] [ секунды ] [ ] [ attr ] [ путь . ]

ls выводит список файлов и каталогов. Если путь является файлом, ls отображает информацию о файле в соответствии с запрошенными параметрами. Если путь является каталогом, ls отображает информацию о файлах и подкаталогах в нем. Вы можете получить информацию о самом каталоге, используя опцию.

Если вы не укажете никаких параметров, ls отобразит только имена файлов.Когда ls отправляет вывод в канал или в файл, она записывает одно имя в строку; когда он отправляет вывод на терминал, он использует формат (многостолбцовый).

выводит список всех записей, включая те, которые начинаются с точек ( . ), но исключая любые . или .. записи.

отображает все записи, включая те, которые начинаются с точки ( . ).

отображает непечатаемые символы как восьмеричные байты в форме \ooo .

помещает вывод в столбцы, отсортированные по вертикали; это формат вывода по умолчанию на терминал.

использует время создания файла для сортировки ( ) или отображения ( ).

не отображает содержимое именованных каталогов, а показывает информацию о самих каталогах.

ставит / после каждого имени каталога, * после каждого исполняемого файла, | после каждого файла FIFO, @ после каждой символической ссылки и = после каждого сокета.

Системы Windows не поддерживают файлы FIFO или сокеты (как файлы) и рассматривают все файлы, не являющиеся каталогами или символическими ссылками, как исполняемые файлы. Этот параметр утилиты ls соответствующим образом помечает отображаемые файлы и каталоги.

включает параметр и отключает параметры , , , , , , и . Для каждого аргумента, который является каталогом, все записи каталога перечислены в том же порядке, в котором они были получены из системы (только для систем, совместимых с POSIX и UNIX).

отображает только идентификаторы групп (в системах 2012/8.1/2012R2/10/2016/2019, POSIX-совместимых и UNIX-системах).

Если указан этот параметр, каждый размер файла отображается с использованием наиболее подходящей единицы измерения и округляется до двух знаков после запятой.

отображает номера инодов вместе с именами файлов (только в системах, поддерживающих номера инодов, таких как POSIX-совместимые и UNIX-системы).

отображает размер в килобайтах вместо блоков, если указано с помощью параметра. Если параметр не указан, этот параметр не действует.

переходит по символическим ссылкам.

Символические ссылки доступны только в системах 2012/8.1/2012R2/2016/2019 с файловой системой NTFS.

отображает разрешения, ссылки, владельца, группу, размер, время, имя; см. Формат длинного вывода .

отображает имена в одну строку с разделителями-запятыми.

отображает идентификаторы пользователей и групп в виде чисел, а не имен.

отображает только идентификатор пользователя-владельца (только для POSIX-совместимых систем и систем UNIX).

ставит / после имен каталогов.

отображает непечатаемые символы как ? .

рекурсивно перечисляет подкаталоги.

сортирует в обратном порядке; вы можете комбинировать это с другими параметрами сортировки списка.

отображает размер в блоках (после номера инода, но до другой информации). Если параметр также указан, вместо этого размер отображается в килобайтах.

сортирует записи по времени. По умолчанию эта опция сортирует вывод по времени модификации файлов. Вы можете изменить это с помощью параметров и.

В длинном выводе отображать количество потоков (для файловых систем с альтернативными потоками) после количества ссылок и перечислять эти потоки в отдельной строке (например, ). Если не указано, не действует.

указывает количество секунд, в течение которых ls должна завершить операцию до истечения времени ожидания и выдачи ошибки. секунды задаются в секундах.

использует время последнего доступа для сортировки ( ) или отображения ( ).

отображает расширенные атрибуты безопасности в Windows. Эта опция включает опцию (длинный список). Аргумент attr представляет собой строку, содержащую некоторые из следующих символов:

Если оба и или оба и находятся в attr , ls использует последний указанный в командной строке. См. Расширенные описания атрибутов .

помещает выходные данные в столбцы, отсортированные по строкам.

форсирует вывод в один столбец.

Когда вы указываете взаимоисключающие параметры (например, и ), используется параметр, который появляется последним в командной строке.

Вывод команды ls суммирует всю наиболее важную информацию о файле в одной строке. Если указанный путь является каталогом, ls отображает информацию о каждом файле в этом каталоге (по одному файлу в строке). Он предшествует этому списку строкой состояния, которая указывает общее количество блоков файловой системы (единицы 512 байт), занимаемых файлами в этом каталоге. Вот пример вывода вместе с объяснением.

Первый символ определяет тип файла:

Для обычного файла "-" можно заменить на:

В системах Windows большинство отображаемых разрешений являются искусственными и не имеют реального значения. Бит w устанавливается в соответствии с атрибутом ReadOnly, а биты rx всегда включены.

Вы можете изменить некоторые разрешения с помощью команды chmod.

После разрешений идет количество ссылок на файл.

Далее идет имя владельца файла или каталога. В файловых системах, не поддерживающих безопасность 2012/8.1/2012R2/10/2016/2019, невозможно определить имя владельца, и вместо него отображается идентификационный номер владельца. Под 2012/8.1/2012R2/10/2016/2019 имя владельца файла отображается, если можно получить SID файла и если эти SID имеют связанное имя в базе данных SAM. Если файл имеет связанный с ним SID, но имя SID не может быть определено, отображается значение SID. (Это может произойти, если текущий пользователь не находится в домене, который использовался при создании файла.) Если у файла нет SID (например, если он находится в файловой системе, отличной от NTFS), или если информация о безопасности файла недоступна, так как файл заблокирован другим процессом, тогда имя пользователя отображается как .

Если указанный файл принадлежит локальному компьютеру, владелец отображается как имя_компьютера \, где имя_компьютера — это имя локального компьютера.

Затем следует название группы, которой принадлежит файл или каталог. В системах Windows для имени группы применяются те же правила, что и для имени владельца.

За этим следует размер файла, выраженный в байтах.

После этого идет дата и время. Для файла это время последнего изменения файла; для каталога это время создания каталога. Параметры и могут изменить используемое значение времени. Если дате более шести месяцев или если она находится в будущем, вместо времени отображается год.

Последний элемент в строке — это имя файла или каталога.

В системах 2012/8.1/2012R2/10/2016/2019 ls поддерживает параметр, который отображает расширенные атрибуты файлов. Это описание показано под уже описанным длинным форматом вывода.

Для ls -X A или ls -X a формат отображения:

где attributelist — это разделенный запятыми список из одного или нескольких следующих элементов:

Для ls -X D или ls -X d формат отображения:

является одним из вариантов Разрешить или Запретить .

— это имя пользователя или группы, взятое из реестра Security Access Manager 2012/8.1/2012R2/10/2016/2019. Любые пробелы в имени заменяются символами +.

является списком флагов, разделенных запятыми, для объектов дискреционного контроля доступа:

Если флаги не установлены, ls отображает один символ - . ACE расшифровывается как «Контроль доступа»; дополнительную информацию см. в документации по системе 2012/8.1/2012R2/10/2016/2019.

— это набор разрешений на доступ (если отображается Разрешить) или ограничений (если отображается Запретить) для этого ACE. Это может быть любой из следующих элементов или ни один из них:

содержит ширину терминала в столбцах. ls использует это значение, чтобы определить количество выходных столбцов для записи с помощью параметра.

MKS Toolkit поддерживает жесткие ссылки в версиях 2012/8.1/2012R2/10/2016/2019 в файловых системах NTFS. Для этой поддержки наблюдается небольшая потеря производительности. Если вам не требуется поддержка жестких ссылок, вы должны установить и экспортировать переменную среды TK_NTLINKS_OFF, чтобы отключить эту поддержку.

MKS Toolkit поддерживает информацию о безопасности 2012/8.1/2012R2/10/2016/2019 в файловых системах NTFS. Для этой поддержки наблюдается небольшая потеря производительности. Если вам не требуется никакой информации о безопасности, вы должны установить и экспортировать переменную среды TK_NTSECURITYINFO_OFF, чтобы отключить эту функцию.

В соответствии с 2012/8.1/2012R2/10/2016/2019 для файлов со связанным SID , имя которых невозможно определить, вместо этого отображается значение SID. Значения SID обычно очень велики. Вы должны установить и экспортировать TK_NTSECURITYINFO_SID_TERSE, который приводит к сокращению всех значений SID путем замены всех значений дочерних органов, кроме последнего, строкой -. - .

Если эта переменная среды установлена, месяцы и дни недели отображаются так, как это определено в текущей локали. По умолчанию утилиты PTC MKS Toolkit отображают месяцы и дни недели на английском языке.

содержит часовой пояс, который будет использоваться при отображении строк даты и времени. В версии 2012/8.1/2012R2/10/2016/2019 PTC MKS Toolkit использует встроенную поддержку часового пояса, и вам не следует задавать переменную среды TZ.

Сбой из-за любой из следующих причин:

— недостаточно памяти — невозможно найти информацию о файле — слишком много каталогов — файл/каталог не найден 2

Сбой из-за недопустимого параметра командной строки.

Файл или каталог " имя " не найден

Запрошенный файл или каталог не существует.

Невозможно выделить память для сортировки

Для сортировки вывода ls необходимо выделить память; это сообщение говорит о том, что для операции сортировки недостаточно памяти.

Слишком много записей каталога в " dir "

Это сообщение появляется только тогда, когда ls заканчивается динамически выделенная память.

POSIX.2. x /OPEN Руководство по переносимости 4.0. Все UNIX-системы. Windows Server 2012. Windows 8.1. Windows Server 2012 R2. Windows 10. Windows Server 2016. Windows Server 2019.

В системах Windows команда ls обрабатывает файлы и каталоги, помеченные скрытым атрибутом, такие как имена файлов POSIX и UNIX, начинающиеся с . (период).

В системах Windows ls -a в корне раздела (например,ls -a c:/) будет вести себя так же, как Windows, не перечислять и не отображать каталоги с точками ( . ) и точка-точка ( .. ).

Параметры , , , , , , , , , , , и являются расширениями стандарта POSIX и XPG.4.

Этот параметр относится к версии ls 2012/8.1/2012R2/10/2016/2019.

Набор инструментов PTC MKS для опытных пользователей
Набор инструментов PTC MKS для системных администраторов
Набор инструментов PTC MKS для разработчиков
Набор инструментов PTC MKS для взаимодействия
Набор инструментов PTC MKS для профессиональных разработчиков
>Набор инструментов PTC MKS для профессиональных разработчиков, 64-разрядная версия
Набор инструментов PTC MKS для разработчиков предприятий
Набор инструментов PTC MKS для разработчиков предприятий, 64-разрядная версия

Читайте также: