Як перерахувати всі файли в каталозі та їх рекурсивні розміри файлів?
--- редагувати
Я хочу бачити розміри "згорнуті" до батьківських каталогів у вказаному каталозі. Я не хочу бачити дочірні каталоги чи їхній вміст чи розміри.
Як перерахувати всі файли в каталозі та їх рекурсивні розміри файлів?
--- редагувати
Я хочу бачити розміри "згорнуті" до батьківських каталогів у вказаному каталозі. Я не хочу бачити дочірні каталоги чи їхній вміст чи розміри.
Відповіді:
Напевно, найпростіший спосіб - це набравши текст ls -l
, ls -lh
який надасть розмір файлу у читаному для людини форматі (KB, MB тощо).
Якщо "рекурсивно" означає перелік усіх наступних папок, наприклад:
/ 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
Більше варіантів можна знайти на сторінці man.
-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