ファイルをそのサイズで印刷するUnixコマンドを探しています。これを使用しましたが、機能しませんでした。
find . -size +10000k -print.
ファイルのサイズとファイル名/ディレクトリを印刷したい。
find . -size +10000k -exec ls -sd {} +
find
のバージョンが+
表記(xargs
のように振る舞う)を受け入れない場合は、(GNU find
およびxargs
を使用できます。 、したがってfind
はおそらく+
をサポートします)
find . -size +10000k -print0 | xargs -0 ls -sd
または+
を\;
に置き換える(およびこれの相対的な非効率性と一緒に生きる)か、名前のスペースに起因する問題を抱えてポータブルを使用する可能性があります。
find . -size +10000k -print | xargs ls -sd
ls
コマンドの-d
は、ディレクトリが見つかった場合(そうではないが...)、ディレクトリ内のファイルではなくディレクトリ情報が印刷されることを保証します。また、1 MB以上のファイルを探している場合(削除済みのコメントが示唆されているように)、+10000k
を1000k
に調整する必要があります。または+1024k
または+2048
(512バイトブロックの場合、-size
のデフォルト単位)。これにより、サイズとファイル名が一覧表示されます。もちろん、-d
を-type f
をfind
コマンドに追加することで、必要性を回避できます。
Findを使用して、%sをprintfとしてファイルサイズをバイト単位で出力できます。 %h /%fは、それぞれディレクトリプレフィックスとファイル名を出力します。\nは強制的に改行します。
例
find . -size +10000k -printf "%h/%f,%s\n"
出力
./DOTT/extract/DOTT/TENTACLE.001,11358470
./DOTT/Day Of The Tentacle.nrg,297308316
./DOTT/foo.iso,297001116
GNUが見つかったと仮定します:
find . -size +10000k -printf '%s %f\n'
サイズフィールドの幅を一定にしたい場合は、次のようなことができます。
find . -size +10000k -printf '%10s %f\n'
-size +1000k
は少なくとも10,240,000バイトのファイルを選択することに注意してください(k
は1000ではなく1024です)。コメントで、1Mより大きいファイルが必要だと言いました。 1024 * 1024バイトの場合、次のようになります。
find . -size +1M ...
正確に 1024 * 1024バイトのファイルのサイズと名前も出力することを除いて、トリックを行います。それが重要な場合は、次を使用できます。
find . -size +1048575c ...
必要な基準を決める必要があります。