Как мне перечислить все файлы в каталоге и их рекурсивные размеры файлов?
---редактировать
Я хочу видеть размеры, «свернутые» в родительские каталоги в указанном каталоге. Я не хочу видеть дочерние каталоги или их содержимое или размеры.
Как мне перечислить все файлы в каталоге и их рекурсивные размеры файлов?
---редактировать
Я хочу видеть размеры, «свернутые» в родительские каталоги в указанном каталоге. Я не хочу видеть дочерние каталоги или их содержимое или размеры.
Ответы:
Я предполагаю, что самый простой способ - это набрать текст ls -l
, ls -lh
который предоставит размер файла в удобочитаемом формате (КБ, МБ и т. Д.).
Если «рекурсивно» означает перечисление всех последующих папок, например:
/ foo /
/ foo / bar / ....
Затем вы должны также добавить параметр R
, как ls -lR
илиls -lhR
Дополнительную информацию ls
можно найти, набравman ls
Обновить:
Следующая команда, предложенная Лекенштейном, вероятно, сделает эту работу:
du -h --max-depth=1 <folder>
-h
для человека -
--apparent-size
это еще один способ отображения размеров, так как уже указан
--max-depth
уровень вложенных папок, на который вы хотите перейти.
apt-get install ncdu
Он также интерактивен, поэтому, если вы хотите проверить подпапку, просто ВВЕРХ, ВНИЗ и войдите в нее.
Чтобы получить общий размер каталога и всех детей
du -hs directory/*
Также проверьте tree
. Он не установлен по умолчанию, но является репозиторием.
Пример:
richard@legend:~$ tree Applications/ -s
Applications/
├── [ 4096] AlexFTPS-1.0.2
│ ├── [ 31232] AlexPilotti.FTPS.Client.dll
│ ├── [ 274432] C5.dll
│ ├── [ 1457] C5-License
│ ├── [ 35147] COPYING
│ ├── [ 7639] COPYING.LESSER
│ ├── [ 70] ftps
│ ├── [ 28672] ftps.exe
│ ├── [ 98304] Plossum CommandLine.dll
│ ├── [ 1557] Plossum-License
│ └── [ 2560] README
└── [ 4096] src
└── [ 180849] AlexFTPS_bin_1.0.2.zip
Дополнительные параметры можно найти на странице руководства.
-h
показать размер в удобочитаемом виде, напримерtree -s
Поскольку вы не упоминаете, что вам нужно решение на основе терминала, я думаю, что baobab aka Disk Usage Analyzer отсутствует в списке.
Он установлен в Ubuntu по умолчанию и выполняет именно то, что вам нужно, в красивом графическом интерфейсе с возможностью детализации иерархии каталогов.
Помимо отображения списка каталогов с их размерами, он также показывает кольцевую или древовидную диаграмму использования файловой системы, что чрезвычайно полезно для визуализации каталогов, занимающих больше всего места.
Терминал решением является du
командой:
du --all --human-readable --apparent-size
(сокращенное: du -ah --apparent-size
)
du
отображает использование диска для каждого файла и каталога. Варианты объяснены:
--all
, -a
- показать размеры файлов , а также, не только каталоги--human-readable
, -h
- показать размеры в удобочитаемом формате, например 10K
(10 килобайт), 10
(10 байт)--apparent-size
- показать фактический размер файла, а не размеры, используемые диском.--max-depth=1
--max-depth=1
может быть сокращена до -d1
.
Это, кажется, делает трюк, когда задействованы симлинки.
ls -LRlh
Чтобы получить отсортированный список, поместите все в МБ и сортируйте:
du -m * | sort -n
Или используйте инструмент, такой как DiskReport, для создания отчета о полном дереве дисков.
Другое терминальное решение с find
сортировкой (размер файла, столбец 1)
$ find . -maxdepth 1 ! -path . -printf "%s %p\n" | sort -n -k1
178 ./somefile.txt
219 ./somefile2.txt
4096 ./c
4096 ./cs2
4096 ./perl
4096 ./python
4096 ./random
4096 ./sh