duコマンドは隠しディレクトリを解析しません


20

次のコマンドを使用して、ディレクトリによって使用されるディスク容量を見積もります。

du -sh dir_name

隠しディレクトリは計算されません。 duのmanページにはそれに関する情報はありません。隠しファイルを含むディレクトリが使用しているディスク容量を計算する方法。

回答:


10

実際にはそうです、これは証明です:

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

-a optionは、どのファイルがカウントされたかを明示的に示すために使用されます。

使っていますか du *


2
+1 ... you maybe using "du *" ?
sehe

2
私は "du *"を使っていません。私は全体的な要約の要約が必要であるという質問の中で言及するのを忘れていました。したがって、du -asのように-aと-sの両方を使用すると、「du:すべてのエントリを要約して表示することはできません」というエラーメッセージが表示されます。これは1つの問題です。他の事は私もdu -aと私は最初のレベルのファイルだけを見るようになるということです。つまり、隠しディレクトリ内のファイルを見ることができません。
Talespin_Kit

1
-aを追加しました 見せる カウントされているすべてのファイルは、単にそのフラグを追加しないでください、それは合計ではなく表示だけに影響します。私はあなたにその代わりに隠しディレクトリがカウントされるという反例を示しました。
stivlo

今、私は問題を見つけました。問題は隠しディレクトリがシンボリックリンクだったので、私は "du -Lsh dir_name"を使わなければなりませんでした。ありがとう。
Talespin_Kit

ああ、私はあなたがそれを見つけたことを嬉しく思います、応援します。
stivlo

43

このコマンドは隠しディレクトリの要約サイズを表示します

du -hs .[^.]*


これはまさに私が探していたものです、ありがとう:)
Nikana Reklawyks

11

参考までに、さまざまなディレクトリによって占められるサイズを推定するためには、それを使用する方がはるかに良い ncdu

ncursesのGUIでさまざまなディレクトリ間を移動できます。各ディレクトリのサイズが表示されます。私がduを使用している場合は、確認したいディレクトリごとにduコマンドを実行する必要があります。 ncurses GUIでも、占有されているサイズに従ってディレクトリをソートできます。


1
あなたの答えを編集してください なぜ あなたはncduが「はるかに良い」と信じています。リンクされたページは、それがncursesベースのバージョンのものであるということ以外は、実際には何も言っていません。 du。より見栄えのする表示方法を除けば、機能的な違いを明確に示すものはありません。
Dave Sherohman

クエリを動的に調整できることは大きな利点です。 〜でncduを実行して、どのディレクトリが最も多くのスペースを使用しているのかを確認してから、それらのディレクトリに直接移動できます。それはまたあなたに与える d ディレクトリを削除するためのバインディングなので、インターフェイスから直接クリーンアップできます。
user88974

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

そうではありません。例:

ホームディレクトリ内:( 1人のユーザしか存在しない)

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パターンには一致しないため、現在のディレクトリの隠し要素は省略されます。

それを理解するのにしばらく時間がかかりました、そしてshadyabhiが推薦するように、私がncduを使ったならばそれは明白だったでしょう。


1

正しいコマンドは次のとおりです。 du -hs .* *


いくつかの追加情報はこれを許容できる答えにするでしょう。
Ramhound

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-depth = Nディレクトリ(またはファイル)の合計を表示します    - すべて)                             コマンドよりNレベル以下低い場合のみ                             行引数--max-depth = 0は、と同じです。                              - まとめ


これは問題を解決するのに役立つかもしれませんが、それはなぜそして/またはそれがどのように問題に対処するかを説明しません。この追加のコンテキストを提供すると、その長期的な教育的価値が大幅に向上します。あなたの答えを編集して、どのような制限や仮定が適用されるかなど、説明を追加してください。ありがとう。
fixer1234

@ fixer1234 RTFM
luochen1990

0

このコマンドはあなたがディレクトリに入るディスク使用量をチェックして、以下を実行するのを助けるでしょう。
"du -sch。[!。] * * | sort -h"

これは特定のディレクトリのディスク使用量を計算する方法のデモです。 Du_shという名前のディレクトリを作成し、その中に2つのファイル(1つは隠し10 MB、通常20 MB)を作成します。

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$

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.