Почему это не показывает скрытые файлы / папки?

113

Я просматривал свою систему с du -sch ./* , чтобы найти большие бесполезные файлы, которые, возможно, были накоплены без причины, когда я нашел это:

$ du -sch ./*
du: cannot read directory ‘./drbunsen/.gvfs’: Permission denied
du: cannot read directory ‘./drbunsen/.cache/dconf’: Permission denied
18G ./drbunsen
18G total

$ cd drbunsen/
$ du -sch ./*
601M ./Desktop
20K ./Documents
598M ./Downloads
4.0K ./flash
4.0K ./Music
8.0M ./Pictures
4.0K ./Public
4.0K ./Templates
4.0K ./Ubuntu One
8.0K ./Videos
11G ./VirtualBox VMs
6.9M ./workspace
12G total

Как сделать скрытые файлы видимыми? du -sch ./.* дает тот же результат, что и du -sch ./* .

    
задан Dr_Bunsen 11.10.2013 в 20:30
источник

3 ответа

201

Использование

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

в вашей домашней папке.

В качестве альтернативы, я использую наиболее часто используемую команду

ncdu

Простота установки при необходимости:

sudo apt-get install ncdu
    
ответ дан don.joey 22.10.2013 в 11:30
источник
41

У меня такой же вопрос в списке рассылки coreutils, потому что мне было сложно запомнить эту странную команду @ don.joey. И Bob Proulx предложил лучшую, более естественную команду: du -ahd1 | sort -h

If you want to list all of the files in the current directory then either use '.' or don't give it any file arguments at all. Also you may want to use the -d, --max-depth=N option.

Try this:

du -hd1

    
ответ дан Yurii Kolesnykov 22.06.2015 в 07:19
6

Когда вы запускаете ту же самую команду внутри каталога, она не включает скрытые файлы, которые начинаются с . в счете. Если у вас, например, установлен Steam, он по умолчанию устанавливает игры в ~/.local/share/Steam/ , и сам он также установлен там.

В bash вам, видимо, нужно запустить du -sch .[!.]* * , так как он не будет правильно расширять .* glob. В zsh или других оболочках du -sch * .* должно работать, так как .* следует развернуть, чтобы включить список всех скрытых файлов в текущий каталог.

    
ответ дан dobey 11.10.2013 в 20:48