Как перечислить рекурсивные размеры файлов файлов и каталогов в каталоге?

Как мне перечислить все файлы в каталоге и их рекурсивные размеры файлов?

--- редактировать

Я хочу видеть размеры, "свернутые" в родительские каталоги в указанном каталоге. Я не хочу видеть дочерние каталоги, их содержимое или размеры.

apt-get install ncdu

enter image description here

Он также является интерактивным, поэтому, если вы хотите проверить подпапку, просто нажмите ВВЕРХ, ВНИЗ и войдите в нее.

Я думаю, самый простой способ - это набрать ls -l, или ls -lh который предоставит размер файла в удобочитаемом формате (КБ, МБ и т.д.).

Если "рекурсивно" означает перечисление всех последующих папок, например:

/foo/
/foo/бар/....

Затем вы также должны добавить параметр R, как ls -lR или ls -lhR

Дополнительная информация для ls можно найти, набрав man ls

Обновление:

Следующая команда, предложенная Лекенштейном, вероятно, выполнит эту работу:

du -h --max-depth=1 <folder>

-h предназначен для чтения человеком
--apparent-size это еще один способ отображения размеров, как уже было указано
--max-depth это уровень вложенных папок, на который вы хотите перейти.

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

du -hs directory/*

Также проверьте tree. Он не установлен по умолчанию, а находится в репозиториях.

Пример:

richard@legend:~$ tree Applications/ -sApplications/├── [           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

Дополнительные параметры можно найти на справочной странице.

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

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

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

baobab the Disk Usage Analyzer

A терминальное решение это du команда:

du --all --human-readable --apparent-size

(стенография: du -ah --apparent-size)

du отображает использование диска для каждого файла и каталога. Объясненные варианты:

  • --all, -a - показывать размеры также для файлов, а не только для каталогов
  • --human-readable, -h - отображение размеров в удобочитаемом формате, например 10K (10 килобайт), 10 (10 байт)
  • --apparent-size - показывать фактический размер файла, а не размеры, используемые диском.

Это, по-видимому, делает свое дело, когда задействованы sim-ссылки.

ls -LRlh

Чтобы получить отсортированный список, поместите все в MB и отсортируйте :

du -m * | sort -n

Или используйте такой инструмент, как ДискРепорт для создания отчета о полном дереве дисков.

Мне нравится следующий подход:

du -schx .[!.]* * | sort -h

где:

  • s: отображать только итоговое значение для каждого аргумента
  • c: произвести общий итог
  • h: размеры печати в удобочитаемом формате
  • x: пропустить каталоги в разных файловых системах
  • .[!.]* *: Суммируйте использование диска для каждого файла, рекурсивно для каталогов (включая "скрытые")
  • | sort -h: Сортировка на основе удобочитаемых чисел (например, 2K 1G)

Другое терминальное решение с find и сортировка (по размеру файла, столбец 1)

$ find . -maxdepth 1 ! -path . -printf "%s %p\n" | sort -n -k1                              178 ./somefile.txt219 ./somefile2.txt4096 ./c4096 ./cs24096 ./perl4096 ./python4096 ./random4096 ./sh

Вы имеете в виду, что хотите увидеть общий размер (сумму) всех файлов в папке, например, щелкнув правой кнопкой мыши по папке на вашем рабочем столе и выбрав “свойства”?

Вы ищете программное обеспечение, которое поможет вам находить большие файлы, или что-то, чтобы получить (сворачиваемое) файловое дерево?

Привет @ Pavlos G - Я имею в виду сумму для каждого из каталогов в каталоге, в котором я сейчас нахожусь, а не сумму для общего каталога.

@J G - Проверьте мои обновления :wink: