На этот вопрос уже есть ответ здесь:
Какую команду я использую, чтобы найти размер всех файлов (рекурсивно) в каталоге Linux или Mac OS X?
linux
macos
mac
command-line
Дэрил Спитцер
источник
источник
-k
опцию, чтобы использовать размер блока 1K-байтdu
, я используюncdu
, вы можете найти ссылку здесь, remysharp.com/2018/08/23/cli-improvedОтветы:
Версия BSD,
du
используемая в OS X, сообщает о размере с 512-байтовыми блоками - размеры по существу округлены до следующего 512-байтового значения. Это говорит о том, что место на диске больше, чем объем данных. Если у вас много маленьких файлов, разница может быть большой.Вот пример.
Это значение с регулярным
du
. Это в 512-байтовых блоках:Эти
-h
результаты флага в более читаемом числа, в килобайт. Как и ожидалось, это половина числа 512-байтовых блоков:Наконец, вы можете использовать
find
и,awk
чтобы дать вам сумму фактических байтов в файлах. Это немного медленно, но работает:Это значение в точности совпадает с числом, сообщенным в окне «Информация» в Finder. (В этом наборе файлов нет никаких странных разветвлений или xattrs.) Это значительно меньше значения, сообщаемого
du
.Вот как это работает: он получает список всех файлов и передает их
ls -l
; затемawk
используется для подсчета байтов.-type f
Флаг там так , что только файлы (а не каталоги) будут посланыls
. Без этого флага он также будет отправлять имена каталоговls
, и каждый файл будет указан дважды: один раз как отдельный файл и один раз как элемент в каталоге.Версия GNU
du
может давать значения в реальных байтах вместо блоков. К сожалению, версия BSDdu
не такая гибкая.источник
du
из GNU coreutils с-b
опцией я получаю другой результат, чем с вашейfind
версией. Для каталога на 36 ГБ я получаю разницу в 82 КБ.Показать размер одного файла
du -h path_to_a_file
Покажите размер содержимого каталога, каждого подкаталога и каждого отдельного файла:
du -h path_to_a_directory
Показать размер содержимого каталога:
du -sh path_to_a_directory
источник
du -sch
если вы хотите что-то более легко читаемое.du - указывает на использование диска, а не на размер файла .
Код терминала выше (im на OSX 10.6) предлагает для меня лучший результат и работает быстрее, чем "find ... -exec"
быстрый тест
источник
find . -type f -print0 | xargs -0 stat -c%s | awk '{b+=$1} END {print b}'
Вы можете использовать,
du -ah .
который отображает размеры всех файлов и каталогов рекурсивно.Это может быть объединено с
sort
, так что вы увидите топ-20 крупнейших каталогов в текущей папке:Примечание. Опция
-h
forsort
недоступна в OSX / BSD, поэтому вам необходимо установитьsort
изcoreutils
(например, черезbrew
) и применить путь кPATH
папке, например:В противном случае используйте:
источник
brew install coreutils
противном случае используйте команду сортировки BSD в конце без-h
.Я объединил все ваши приложения и объединил их с удобочитаемым выводом:
Ссылка на суть: https://gist.github.com/mlegenhausen/9365461
источник