ディレクトリ例のファイルを一覧表示する方法

ディレクトリ例のファイルを一覧表示する方法

数十万のファイルを含むディレクトリがあります。
ディレクトリ内のすべてのファイルを処理せずに、これらのファイルのサンプル(サンプル10個のファイル)を一覧表示する必要があるため、処理に時間がかかりすぎます。

ベストアンサー1

ファイルシステムレベルでも何らかの方法でファイルをすべて読まないと、ファイル全体のリストからサンプリングできないと思います。

〜しない限りその名前はパターン(例:fileXXXXXXX)に従います。この場合、ファイルにアクセスする前に任意の名前のリストを事前に作成できます。ファイル数が多すぎて名前がランダムであればおかしいでしょう。

しかし、あなたがそれほど幸運ではないとしましょう。を使用すると、出力をヌルエスケープすることができ、ファイル名の非標準文字の影響を受けないようになりますfindlsすべてのファイルを読みたくない場合は、リストの先頭にあるファイルを使用するのが最速です。より良いサンプルを得るには、より大きなサンプル(下)から始めて、ランダム$oversamplesizeにサイズを選択します。空の区切り文字の作成または使用$samplesizeに成功しなかったため、混合と最終選択は次のように行われました。sort -Rshufawk

 find ~ -type f -print0 | 
 grep --null --null-data -m ${oversamplesize:-100} . | 
 awk -v samplesize=${oversamplesize:-11} -vRS='\0' -vORS='\0' \
   '{ a[NR]=$0 } END {srand(); while (i<samplesize) { b=(int(rand()*10000)%samplesize); if (b in c) {continue;} else {c[b]=a[b]; print a[b]; i++;} }; }' | 
 xargs -0 echo # echo here being just a dummy

ここに2つのメモがあります。何らかの理由で通常は空のファイル名も印刷されているため、サンプルのサイズを増やしました。重要なのは、検索パス(〜ここ)と最終コマンドを変更することを忘れないことです。

おすすめ記事