57

ファイルをそのサイズで印刷する Unix コマンドを探しています。私はこれを使用しましたが、うまくいきませんでした。

find . -size +10000k -print.

ファイル名/ディレクトリとともにファイルのサイズを印刷したい。

4

3 に答える 3

69
find . -size +10000k -exec ls -sd {} +

のバージョンが表記法findを受け入れない場合+(これはかなり同じようにxargs機能します)、次を使用できます(GNUfindおよびxargs、とにかくfindサポートしている可能性があります)。+

find . -size +10000k -print0 | xargs -0 ls -sd

+または、 withを置き換える\;(そしてこれの比較的非効率な状態で生きる)か、名前のスペースが原因で問題が発生し、ポータブルを使用する可能性があります。

find . -size +10000k -print | xargs ls -sd

コマンドの-donはls、ディレクトリが見つかった場合(可能性は低いですが...)、ディレクトリ内のファイルではなく、ディレクトリ情報が出力されることを保証します。また、1 MBを超えるファイルを探している場合(現在削除されているコメントが示唆しているように)、または、または(512バイトブロックの場合はデフォルトの単位)に調整する必要があり+10000kます。これにより、サイズとファイル名が一覧表示されます。もちろん、コマンドに追加することで、この必要性を回避できます。1000k+1024k+2048-size-d-type ffind

于 2012-04-09T21:00:46.480 に答える
9

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
于 2012-04-09T21:10:41.320 に答える
7

GNU find があると仮定します:

find . -size +10000k -printf '%s %f\n'

サイズフィールドの幅を一定にしたい場合は、次のようにすることができます:

find . -size +10000k -printf '%10s %f\n'

-size +1000k少なくとも 10,240,000 バイトのファイルを選択することに注意してください( k1000 ではなく 1024 です)。コメントで、1M を超えるファイルが必要だと言いました。それが 1024*1024 バイトの場合、次のようになります。

find . -size +1M ...

トリックを行います-ただし、正確に1024 * 1024バイトであるファイルのサイズと名前も出力します。それが重要な場合は、次を使用できます。

find . -size +1048575c ...

必要な基準を決定する必要があります。

于 2012-04-09T21:07:14.337 に答える