オプションls
を指定したl
コマンドを使用して、ディレクトリ(サブディレクトリとサブディレクトリを含む)のサイズを取得しようとしました。ファイル(ls -l file name
)ですが、ディレクトリのサイズを取得しようとすると(たとえば、ls -l /home
)、4096バイトしか取得しませんが、全体としてははるかに大きくなります。
du -sh file_path
説明
du
(d isc sage)コマンドは、file_pathスペース使用量を推定しますオプション-sh
は(man du
から):
-s, --summarize
display only a total for each argument
-h, --human-readable
print sizes in human readable format (e.g., 1K 234M 2G)
複数のディレクトリをチェックして合計を確認するには、du -sch
を使用します。
-c, --total
produce a grand total
du
コマンドを使用するだけです。
du -sh -- *
現在のディレクトリにあるすべての非表示ではないディレクトリ、ファイルなどの累積ディスク使用量を、人間が読める形式で提供します。
df
コマンドを使用して、ディレクトリを含むファイルシステムの空き容量を確認できます。
df -h .
du
はあなたの友達です。ディレクトリの合計サイズだけを知りたい場合は、そこにジャンプして実行します。
du -hs
また、どのサブフォルダがどのくらいのディスク容量を使用しているのかを知りたい場合は!?このコマンドを次のように拡張できます。
du -h --max-depth=1 | sort -hr
これにより、すべてのサブフォルダー(レベル1)のサイズがわかります。出力はソートされます(一番上のフォルダーが一番上)。
他の人がdu
について言及していますが、 Ncdu -du
のncursesバージョンです。インタラクティブ性を提供します。ディレクトリ階層を直接探索し、サブディレクトリのサイズを確認できます。
du
コマンドは、ファイルのディスク使用量を示します。
-h
オプションは、人間が読める形式(4k、5M、3Gなど)で結果を表示します。
du -h (file name)
上記の例はすべて、データのサイズon diskを示します(つまり、特定のファイルが使用しているディスク領域の量で、通常は実際のファイルサイズよりも大きくなります)。データが実際にこの特定のディスクに格納されておらず、inode参照のみが存在する場合、これらが正確なレポートを提供しないいくつかの状況があります。
あなたの例では、単一のファイルに対してls -lを使用しました。これにより、ディスク上のサイズではなく、ファイルの実際のサイズが返されます。
実際のファイルサイズを知りたい場合は、-bオプションをduに追加します。
du -csbh .
個人的には、ncdu
を使用したくない場合に最適です。
# du -sh ./*
df -h .; du -sh -- * | sort -hr
これは、現在のドライブに残っているディスク領域の量を示し、すべてのファイル/ディレクトリが占める量を示します。例えば。、
Filesystem Size Used Avail Use% Mounted on
/dev/sdb2 206G 167G 29G 86% /
115M node_modules
2.1M examples
68K src
4.0K webpack.config.js
4.0K README.md
4.0K package.json
I このコマンドをrootとして使用 :
Sudo ls -1d */ | Sudo xargs -I{} du {} -sh && Sudo du -sh
現在のディレクトリにあるすべてのファイルを再帰的に検索し、それらのサイズを合計します。
find -type f -print0 | xargs -0 stat --print='%s\n' | awk '{total+=$1} END {print total}'
これが.bash_aliasesの関数です
# du with mount exclude and sort
function dusort () {
DIR=$(echo $1 | sed 's#\/$##')
du -scxh $(mount | awk '{print $3}' | sort | uniq \
| sed 's#/# -- exclude=/#') $DIR/* | sort -h
}
出力例:
$ dusort /
...
0 /mnt
0 /sbin
0 /srv
4,0K /tmp
728K /home
23M /etc
169M /boot
528M /root
1,4G /usr
3,3G /var
4,3G /opt
9,6G total
サブディレクトリの場合:
$ dusort .
$ dusort /var/log/
もう1つのバリアント:
du -h --max-dep=1
以下は、動作するPOSIXスクリプトです。
ls -A -R -g -o "$@" | awk '{n1 += $3} END {print n1}'
du
はすべての補助情報のサイズを考慮に入れるため、du
は、通常、ディレクトリ内のすべてのファイルの合計サイズよりも大きい、メディア上でディレクトリが占めるスペースを出力します。メディアに保存され、ファイルシステムフォーマットに準拠してディレクトリを整理します。
ファイルシステムが圧縮可能な場合、du
はすべてのファイルの合計サイズよりも小さい数を出力する可能性があります。これは、ファイルがファイルシステムによって内部的に圧縮されるため、圧縮されていない情報よりもメディア上のスペースが少なくて済むためです。それらが中に含んでいる。スパースファイルがある場合も同様です。
ディレクトリにハードリンクがある場合、ディレクトリ内のいくつかの異なるファイルがメディア上の同じデータを参照するため、du
はより小さな値を出力する場合があります。
ディレクトリ内のすべてのファイルの単純な合計サイズを取得するには、次の1行のシェル式を使用できます(GNU systemと仮定):
find . ! -type d -print0 | xargs -r0 stat -c %s | paste -sd+ - | bc
またはさらに短い:
find . ! -type d -printf '%s\n' | paste -sd+ - | bc
ディレクトリ(およびそのサブディレクトリ)内のすべての非ディレクトリファイルのサイズを1つずつ合計するだけです。シンボリックリンクの場合は、シンボリックリンクのサイズ(シンボリックリンクが指すファイルのサイズではない)を報告することに注意してください。
使用できます
du -sh directory/
そして
du -sh filename
フォルダーまたはファイルが占めるスペースを知る。
df -h
人間が読める形式でディスクの使用状況を表示します-hはそれを行います。
Disk Usage Analyzer
と呼ばれるGUIベースのプログラムもあります。