Как отсортировать все файлы по размеру с помощью ls в Linux

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

Список или сортировка всех файлов по размеру в Linux

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

ls

В следующей команде флаг -l означает длинный список, а -a указывает ls перечислить все файлы, включая скрытые – которые имеют префикс точка (.). Чтобы избежать отображения файлов . и .., используйте опцию -A вместо -a.

ls -la

Список всех файлов, упорядоченных по размеру

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

ls -laS

Вы можете отобразить результаты в человекочитаемом формате, добавив опцию -h, как показано на рисунке.

ls -laSh

Кроме того, вы можете сортировать в обратном порядке (от наименьшего к наибольшему), добавив опцию -r, как показано на рисунке.

ls -laShr

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

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

ls -lhS *.zip

Исключение каталогов при выводе списка или сортировке файлов по размеру

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

ls -Slh | grep -v '^d'

Список или сортировка всех файлов с использованием общего размера единицы измерения

В приведенных выше примерах размеры файлов были напечатаны в разных единицах измерения, т.е. в килобайтах (k) и мегабайтах (M).

Чтобы напечатать или отобразить все размеры файлов в определенной единице измерения, например, в мегабайтах, добавьте опцию --block-size=, указав мегабайты как M, как показано ниже.

ls -laS --block-size=M 

Вывод показывает, что размеры файлов теперь только в MB.

NOTE: Для файлов меньше указанного размера (в данном случае МБ), размер будет округлен до ближайшего МБ. Это означает, что файлы в килобайтах и байтах будут отображаться как 1MB. То же самое будет справедливо для любого указанного размера.

Вы также можете вывести размер в единицах KB, заменив M на k:

ls -laS --block-size=k 

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

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.linuxshelltips.com

Похожие статьи

Комментарии (0)