Я попытался получить размер каталога (содержащего каталоги и подкаталоги) с помощью ls
команды с параметром l
. Кажется, что это работает для файлов ( ls -l file name
), но если я пытаюсь получить размер каталога (например, ls -l /home
), я получаю только 4096 байт, хотя в целом он намного больше.
command-line
ls
disk-usage
Абдул Аль Хазред
источник
источник
-h
опцию, которую вы можете добавить к-l
опции (то естьls -lh
), чтобы получить размеры файлов, которые будут распечатаны в удобной для человека форме, такой как 1.1M вместо 1130301. "h «вdu -hs
команде, которую @sam дал в качестве ответа на ваш вопрос о каталогах, также означает« читабельный человеком », и в нем такжеdf -h
указано, что в человеке читается количество использованного и свободного места на диске.Ответы:
du -sh file_path
объяснение
du
( d isc u sage) команда оценивает использование пространства file_pathВарианты
-sh
(отman du
):Чтобы проверить несколько каталогов и увидеть общее количество, используйте
du -sch
:источник
du
а также вы даете возможность искать более подробную информациюman du
...find
например, для подсчета количества места в определенных подкаталогах на текущем пути:$ find . -type d -name "node_modules" -prune -exec du -sh {} \;
Просто используйте
du
команду:даст вам совокупное использование диска всех не скрытых каталогов, файлов и т. д. в текущем каталоге в удобочитаемом формате.
Вы можете использовать
df
команду, чтобы узнать свободное место в файловой системе, содержащей каталог:источник
du -sh *
начинает выдавать ошибки «неизвестная опция», если любой из файлов в этом каталоге начинается с тире. Безопаснее сделатьdu -sh -- *
du -sh *
не показывает использование в памяти скрытых папокdu -sh -- * .*
включить точечные файлы. Это полезно для включения.git
, например, большого каталога. В качестве альтернативы в zsh вы можете использоватьsetopt globdots
файлы точек по умолчанию.--
? Я знаю, что это применимо к встроенным средствам оболочки для завершения аргументов параметров, ноdu
не является встроенным, и я не вижу документирования этого использования дляdu
: linux.die.net/man/1/du-b
(--apparent-size
)du
твой друг. Если вы просто хотите узнать общий размер каталога, перейдите в него и запустите:Если вы также хотите знать, какие подпапки занимают место на диске ?! Вы можете расширить эту команду до:
который даст вам размер всех подпапок (уровень 1). Вывод будет отсортирован (самая большая папка сверху).
источник
ncdu
файлы, по умолчанию сортируются по убыванию.du
может быть сложным в использовании, так как вы должны передать 100 аргументов, чтобы получить достойный результат. И выяснить размер скрытых папок еще сложнее.Сделайте свою жизнь легкой и удобной
ncdu
.Вы получаете по каждой папке резюме, которые легко просматриваются.
источник
ncdu
отлично, я всегда ищу эту команду, когда забываю. Это быстро, легко ориентироваться и помогает легко находить большие папки. К вашему сведению, он также доступен для macOS и, вероятно, для всех компьютеров с Linux.ncdu
нажавd
клавишуДругие упоминали
du
, но я также хотел бы упомянуть Ncdu, который является версией ncursesdu
и обеспечивает интерактивность: вы можете непосредственно изучить иерархию каталогов и увидеть размеры подкаталогов.источник
Команда
du
показывает использование файла диском.-h
Опция показывает результаты в удобочитаемой форме (например, 4k, 5M, 3G).источник
Во всех приведенных выше примерах будет указан размер данных на диске (т. Е. Объем дискового пространства, используемого конкретным файлом, который обычно больше, чем фактический размер файла). В некоторых ситуациях они не дают точного отчета, если данные на самом деле не хранятся на этом конкретном диске и существуют только ссылки на иноды.
В вашем примере вы использовали ls -l для одного файла, который будет возвращать фактический размер файла, а НЕ его размер на диске.
Если вы хотите узнать фактические размеры файлов, добавьте опцию -b в du.
источник
лично я думаю, что это лучше, если вы не хотите использовать
ncdu
источник
Это показывает, сколько дискового пространства осталось на текущем диске, а затем говорит, сколько занимает каждый файл / каталог. например,
источник
Я использую эту команду как root :
источник
найти все файлы в текущем каталоге рекурсивно и суммировать их размер:
источник
-not -type d
для суммирования не только размеры обычных файлов (-type f
), но и размеры символических ссылок и так далее.Вот функция для вашего .bash_aliases
образец вывода:
для подкаталогов:
источник
Еще один вариант:
источник
Обратите внимание, что
du
печатается пространство, занимаемое каталогом на носителе, которое обычно больше, чем просто общий размер всех файлов в каталоге, посколькуdu
учитывает размер всей вспомогательной информации, хранящейся на носителе, для организации каталога в соответствии с форматом файловой системы.Если файловая система является сжимаемой, то
du
может выводить даже меньшее число, чем общий размер всех файлов, поскольку файлы могут быть внутренне сжаты файловой системой, и поэтому они занимают меньше места на носителе, чем просто несжатая информация, которую они содержат. То же самое, если есть редкие файлы.если в каталоге имеются жесткие ссылки, то
du
может быть напечатано и меньшее значение, поскольку несколько разных файлов в каталоге ссылаются на одни и те же данные на носителе.Чтобы получить простой общий размер всех файлов в каталоге, можно использовать следующее однострочное выражение оболочки (при условии, что система GNU):
или даже короче:
Он просто суммирует размеры всех не-каталогов файлов в каталоге (и его подкаталогах рекурсивно) один за другим. Обратите внимание, что для символических ссылок он сообщает размер символической ссылки (а не файла, на который указывает символическая ссылка).
источник
Вы можете использовать
du -sh directory/
а также
du -sh filename
знать пространство, занимаемое папкой или файлом.
df -h
покажет использование диска в удобочитаемом формате -h делает это.
Существует также программа на основе графического интерфейса
Disk Usage Analyzer
.источник
Вот скрипт POSIX, который будет работать с:
Источник
источник