同一であれば、二つのディレクトリの中身は同じと判断します。
Windowsでは、フォルダのプロパティで実容量のバイト表示が簡単にできるのですが、Linuxでは簡単にはできないようです。
ROX-Filerのプロパティは、ディスクのディレクトリの使用量が表示されますが、実容量は表示されません。
duでも取得できるのはディスクの使用量で、バイト単位で実用量を取得するのはできませんでした。
調べると、findとawkを組み合わせればできるようなので、自分で使いやすいように作ってみました。
長い事、使ってますが、不具合も無く、便利に使ってます。
コード: 全て選択
find $* -type f -printf "%s\n" | awk '
{sum += $1}
END {
printf("%\047d files\n",NR)
printf("%\047d byte\n",sum)
}'
ファイル名はコマンドと重ならければ、何でも良いですが、私はタイピングしやすいように、ds(directory size)としてます。
使い方は、端末で下記の様に入力します。
ds hoge
ディレクトリの合計ファイル数、バイト単位の実容量を3桁のカンマ区切りで表示します。
7,166 files
6,416,318,064 byte
引数に複数のディレクトリ、ファイルでその合計を表示します。
ds hoge kame neko.txt
ROX-FilerからShift+@(`)で、端末を開くと便利です。
以下は、他の詳しい説明です。
・ディレクトリの再帰処理
・シンボリックリンクは辿らない
・引数にファイルも可能
・引数無しは、カレントディレクトリ以下の容量表示
・引数にスペース入りディレクトリ名は不可
・ディレクトリ中にあるのは可能
追記
スペース入りディレクトリの指定方法。
1. ROX-Filerでスペース入りディレクトリを開き、Shift+@(`)を入力
2. スペース入りディレクトリがカレントの状態で端末が開くので、ds と入力
これで、スペース入りディレクトリ以下の容量が表示されます。
当然ながら、この方法では複数のディレクトリの指定はできません。
コマンドラインでスペース入りディレクトリを指定したい場合は、指定方法を下に書きましたので、こちらを参照してください。
viewtopic.php?f=13&t=3241#p25234
追記
スクリプトの末尾に改行を追加しました(取れていた為)。
動作に変わりはありません。
追記
ROX-Filer起動用の dsrox(directory size rox)を作りました。
なんちゃってGUI版です(^^;。
viewtopic.php?f=13&t=3241#p25258