web-dev-qa-db-ja.com

隠しファイル/フォルダーが表示されないのはなぜですか?

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 ./*と同じ結果を返します。

136
Dr_Bunsen

つかいます

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

あなたのホームフォルダに。

また、私が最も頻繁に使用するコマンドは

ncdu

必要に応じて簡単にインストールできます。

Sudo apt-get install ncdu
241
don.joey

Coreutilsのメーリングリストにも同じ質問があります。@ don.joeyによるこの奇妙なコマンドを思い出すのは難しかったからです。そして、Bob Proulx 提案 より良い、より自然なコマンド:du -ahd1 | sort -h

現在のディレクトリ内のすべてのファイルをリストする場合は、「。」を使用します。または、ファイル引数をまったく与えないでください。また、-d、--max-depth = Nオプションを使用することもできます。

これを試して:

du -hd1

52

ディレクトリ内で同じコマンドを実行すると、.で始まる隠しファイルはカウントに含まれません。たとえば、Steamがインストールされている場合、デフォルトで~/.local/share/Steam/の下にゲームがインストールされ、それ自体にもインストールされます。

Bashでは、du -sch .[!.]* * globを適切に展開しないため、明らかに.*を実行する必要があります。 zshまたは他のシェルでは、du -sch * .*が現在のディレクトリのすべての隠しファイルのリストを含むように展開されるため、.*は機能するはずです。

8
dobey