web-dev-qa-db-ja.com

コマンドラインでディレクトリのサイズを取得するにはどうすればよいですか?

オプションlsを指定したlコマンドを使用して、ディレクトリ(サブディレクトリとサブディレクトリを含む)のサイズを取得しようとしました。ファイル(ls -l file name)ですが、ディレクトリのサイズを取得しようとすると(たとえば、ls -l /home)、4096バイトしか取得しませんが、全体としてははるかに大きくなります。

1142
Abdul Al Hazred

du -sh file_path

説明

  • dud 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
    
1585
sam

duコマンドを使用するだけです。

du -sh -- *

現在のディレクトリにあるすべての非表示ではないディレクトリ、ファイルなどの累積ディスク使用量を、人間が読める形式で提供します。

dfコマンドを使用して、ディレクトリを含むファイルシステムの空き容量を確認できます。

df -h .
347
Pacifist

duはあなたの友達です。ディレクトリの合計サイズだけを知りたい場合は、そこにジャンプして実行します。

du -hs

また、どのサブフォルダがどのくらいのディスク容量を使用しているのかを知りたい場合は!?このコマンドを次のように拡張できます。

du -h --max-depth=1 | sort -hr

これにより、すべてのサブフォルダー(レベル1)のサイズがわかります。出力はソートされます(一番上のフォルダーが一番上)。

212
Chrispie

duは、適切な出力を得るために一見100の引数を渡す必要があるため、使用が複雑になる場合があります。そして、隠しフォルダのサイズを把握することはさらに困難です。

あなたの人生を楽にし、ncduを使用してください。

ncdu

簡単に閲覧できるフォルダーごとの概要が表示されます。

77
Teque5

他の人がduについて言及していますが、 Ncdu -duのncursesバージョンです。インタラクティブ性を提供します。ディレクトリ階層を直接探索し、サブディレクトリのサイズを確認できます。

35
Tblue

duコマンドは、ファイルのディスク使用量を示します。

-hオプションは、人間が読める形式(4k、5M、3Gなど)で結果を表示します。

du -h (file name)
28
jackotonye

上記の例はすべて、データのサイズon diskを示します(つまり、特定のファイルが使用しているディスク領域の量で、通常は実際のファイルサイズよりも大きくなります)。データが実際にこの特定のディスクに格納されておらず、inode参照のみが存在する場合、これらが正確なレポートを提供しないいくつかの状況があります。

あなたの例では、単一のファイルに対してls -lを使用しました。これにより、ディスク上のサイズではなく、ファイルの実際のサイズが返されます。

実際のファイルサイズを知りたい場合は、-bオプションをduに追加します。

du -csbh .
24
Andy Foster

個人的には、ncduを使用したくない場合に最適です。

# du -sh ./*
17
ConnerMan
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
16
mpen

I このコマンドをrootとして使用

Sudo ls -1d */ | Sudo xargs -I{} du {} -sh && Sudo du -sh
10

現在のディレクトリにあるすべてのファイルを再帰的に検索し、それらのサイズを合計します。

find -type f -print0 | xargs -0 stat --print='%s\n' | awk '{total+=$1} END {print total}'
10
Leon Chang

これが.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/
10
feldversuch

もう1つのバリアント:

du -h --max-dep=1
9
0x8BADF00D

以下は、動作するPOSIXスクリプトです。

  • ファイル
  • ファイル
  • ディレクトリ
  • ディレクトリ
ls -A -R -g -o "$@" | awk '{n1 += $3} END {print n1}'
7
Steven Penny

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つずつ合計するだけです。シンボリックリンクの場合は、シンボリックリンクのサイズ(シンボリックリンクが指すファイルのサイズではない)を報告することに注意してください。

6
anton_rh

使用できます

du -sh directory/

そして

du -sh filename

フォルダーまたはファイルが占めるスペースを知る。

df -h

人間が読める形式でディスクの使用状況を表示します-hはそれを行います。

Disk Usage Analyzerと呼ばれるGUIベースのプログラムもあります。

6
arupgsh