20

Я хочу оценить объем дискового пространства, используемого каталогом, используя следующую команду.

du -sh dir_name

который не рассчитывает скрытые каталоги. На странице руководства du нет информации об этом. Как рассчитать объем дискового пространства, используемого каталогами, включая скрытые файлы.

9 ответов9

43

Эта команда показывает вам суммарный размер скрытых каталогов

du -hs .[^.]*

11

К вашему сведению, для оценки размера, занимаемого различными каталогами, гораздо лучше использовать ncdu

Вы можете перемещаться в графическом интерфейсе ncurses между различными каталогами, и он покажет размер каждого каталога. Если я использую du, мне придется выполнять команду du для каждого каталога, который я хочу проверить, что может быть громоздким. Вы можете отсортировать каталоги по размеру, занимаемому в графическом интерфейсе ncurses.

10

На самом деле это так, вот доказательство:

mkdir .test
echo "hi" > .test/appo
du -a
4       ./.test/appo
8       ./.test
12      .

Опция -a используется, чтобы явно показать, какие файлы были подсчитаны.

Вы используете du *?

10

Правильная команда: du -hs $(ls -A)

$ du -hs $(ls -A)
0   test
0   .test

du -hs .* * , как упоминалось в другом ответе, неверно, если вы хотите перечислить все файлы и подкаталоги (включая скрытые).

Пример :

$ touch test
$ touch .test
$ echo *
test
$ echo .* *
. .. .test test
$ du -hs .* *
4,0K    .
1,8G    ..

Почему du себя ведешь? Потому что вы используете -s которые суммируют результат и что все файлы и подкаталоги являются потомками . так что du -hs не перечисляет их!

5

Это делает, и это не так. Пример:

В домашнем каталоге: (существует только один пользователь)

du -sh /home/*
2.6G    /home/user

в пользовательском каталоге: (огромная разница между суммами)

du -sh *
61M     bin
2.0M    dump-20130124104823.tar.gz
651M    public_html
472K    twitter-2.0.0.gem
11M     wkhtmltopdf-0.11.0_rc1-static-amd64.tar.bz2

и причина в том, что:

du -sh /home/user/.rvm/
1.9G    /home/user/.rvm/

du будет вычислять скрытые каталоги при спуске в подкаталоги, но в текущем каталоге * просто не соответствует шаблону .directory_name, поэтому скрытые элементы текущего каталога будут опущены.

Мне потребовалось некоторое время, чтобы понять, и, как рекомендует шадьябхи, это было бы очевидно, если бы я использовал ncdu.

1

Правильная команда: du -hs .* *

1

find -maxdepth 1 -exec du -sh "{}" \; | sort -h

Это дает вам:

  • Размер скрытых файлов / каталогов
  • Размер не скрытых файлов / каталогов
  • Общий размер текущего каталога

Он также сортирует выходные данные, чтобы было легче увидеть, что является самым большим. Я также сделал это псевдонимом в моем файле ~/.bash_aliases .

alias big='find -maxdepth 1 -exec du -sh "{}" \; | sort -h'
alias sbig='sudo find -maxdepth 1 -exec du -sh "{}" \; | sort -h'

Теперь я могу просто выполнить big чтобы найти самые большие каталоги в каталоге и sbig когда мне нужны разрешения sudo.

0
du -ahd1 | sort -hr | head -10

Ниже приведено описание опции -d в du --help:

-d, --max-deep = N выводить итоговое значение для каталога (или файла с --all), только если оно на N или меньше уровней ниже аргумента командной строки; --max-глубина = 0 - это то же самое, что и --summarize

0

Эта команда поможет вам проверить использование диска, попасть в каталог и выполнить следующее.
"du -sch. [!.] * * | sort -h"

Вот демонстрация того, как рассчитать использование диска для определенного каталога. Я создал каталог с именем Du_sh и создал два файла (один скрытый 10 МБ и обычный 20 МБ) внутри.

nikhil@debian:~$ mkdir Du_sh nikhil@debian:~$ cd Du_sh/ nikhil@debian:~/Du_sh$ dd if=/dev/zero of=.10MB bs=1024 count=10240 10240+0 records in 10240+0 records out 10485760 bytes (10 MB, 10 MiB) copied, 0.0299941 s, 350 MB/s nikhil@debian:~/Du_sh$ nikhil@debian:~/Du_sh$ dd if=/dev/zero of=20MB bs=2048 count=10240 10240+0 records in 10240+0 records out 20971520 bytes (21 MB, 20 MiB) copied, 0.0342258 s, 613 MB/s nikhil@debian:~/Du_sh$ du -sch .[!.]* * 10M .10MB 20M 20MB 30M total nikhil@debian:~/Du_sh$ du -sch .[!.]* * | sort -h 10M .10MB 20M 20MB 30M total nikhil@debian:~/Du_sh$

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .