ディレクトリの実容量をバイト表示

パピーを名犬にするための技、テクニック

モデレータ: 暇人, YoN, nyu

ディレクトリの実容量をバイト表示

投稿記事by ルビー » 17/03/27(月) 00:28

ディレクトリをコピーして、コピーが正常に完了したのを調べたい時に、それぞれのファイル数とバイト単位の実容量を比べます。
同一であれば、二つのディレクトリの中身は同じと判断します。

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)
}'

ROX-Filerの新規作成で、/root/my-applications/binに、Scriptファイルを作成して、上記をコピペします。
ファイル名はコマンドと重ならければ、何でも良いですが、私はタイピングしやすいように、ds(directory size)としてます。

使い方は、端末で下記の様に入力します。

  ds hoge

ディレクトリの合計ファイル数、バイト単位の実容量を3桁のカンマ区切りで表示します。

  7,166 files
  6,416,318,064 byte

引数に複数のディレクトリ、ファイルでその合計を表示します。

  ds hoge kame neko.txt

ROX-FilerからShift+@(`)で、端末を開くと便利です。

以下は、他の詳しい説明です。
・ディレクトリの再帰処理
  ・シンボリックリンクは辿らない
・引数にファイルも可能
・引数無しは、カレントディレクトリ以下の容量表示
・引数にスペース入りディレクトリ名は不可
  ・ディレクトリ中にあるのは可能
アバター
ルビー
 
記事: 525
登録日時: 14/11/24(月) 12:12

Return to HOWTO

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[2人]