ファイルをそのサイズで印刷する Unix コマンドを探しています。私はこれを使用しましたが、うまくいきませんでした。
find . -size +10000k -print.
ファイル名/ディレクトリとともにファイルのサイズを印刷したい。
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
コマンドの-d
onはls
、ディレクトリが見つかった場合(可能性は低いですが...)、ディレクトリ内のファイルではなく、ディレクトリ情報が出力されることを保証します。また、1 MBを超えるファイルを探している場合(現在削除されているコメントが示唆しているように)、または、または(512バイトブロックの場合はデフォルトの単位)に調整する必要があり+10000k
ます。これにより、サイズとファイル名が一覧表示されます。もちろん、コマンドに追加することで、この必要性を回避できます。1000k
+1024k
+2048
-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 があると仮定します:
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 ...
必要な基準を決定する必要があります。