Как я могу рассчитать размер каталога?


Ответы:


230
du -s directory_name

Или получить читабельный вывод:

du -sh directory_name

-sВариант означает , что он не будет перечислять размер для каждого подкаталога, только общий размер.


7
На самом деле по duумолчанию POSIX использует блоки по 512 байт, а в Linux - килобайты (если не установлена ​​переменная среды POSIXLY_CORRECT) или с du -k.
Жиль

3
@ Жиль: Хороший улов. Я удалил бит "количество байтов" из моего ответа.
sepp2k

1
работал в соответствии с предписаниями
skidadon

1
если каталог очень большой и имеет много подкаталогов, это занимает много времени ... почти 1 мин .. это нормально? Есть ли способ получить размер быстрее?
агаман

2
Мне нужно было рассчитать размер моей папки «сумка», du -sh bagсработало отлично!
Антониу Алмейда,

7

Хотя использование отдельного пакета, такого как ncdu, может работать хорошо, в некоторой степени можно выполнить такое же сравнение многих папок, просто предоставив du список папок для увеличения. Например, для сравнения каталогов верхнего уровня в вашей системе ...

cd /    
sudo du -sh ./*

2
Проще говоряdu -sh /*
Ройма



1

Пытаться

du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr

Это помогает найти большие каталоги, чтобы затем просеять через du -sh ./*


0

Вы также можете использовать ls -ldh:

ls -ldh /etc drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc

-l для длинного списка; -d для отображения информации dir, а не ее содержимого, -h для отображения размера в читаемом формате huma.


4
Это не правильно, тот, кто спрашивает, явно ищет след каталога и его содержимого на диске. Ответ @ sepp2k правильный.
Блонг

1
Команда ls -ldh показывает только размер структуры inode каталога. Метрика отражает размер индексной таблицы имен файлов, но не фактический размер содержимого файла в каталоге.
linbianxiaocao

0

Я всегда устанавливаю пакет "ncdu" и вижу все выходные данные всех каталогов в графическом представлении. Это потому, что мне обычно нужно знать, что занимает больше всего дискового пространства на моих машинах, независимо от того, сколько суммирует один каталог.

Использование: sudo ncdu /(Вам не нужны sudoпапки, на которые у вас есть разрешение на чтение).

Для сканирования статистики использования диска во всей файловой системе потребуется некоторое время. Он имеет красивое графическое представление командной строки и включает навигацию с помощью клавиш со стрелками, например, углубление или повышение в отсканированном пути. Вы также можете удалить элементы, нажав D.



0

du -hd1

перечислит в удобочитаемом формате размеры всех каталогов, например

656K    ./rubberband
2.2M    ./lame
652K    ./pkg-config

0

Я попытался с помощью команды ниже, так как уже был получен лучший ответ

sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

выход

 sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

679445
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.