1

ファイル名、サイズ、日付を変更する必要のあるファイルが約100万あります。

この情報を取得するために、次のコマンドでパフォーマンス面で実行できる改善はありますか?

find ./ -exec ls -lh {} \;

注:「。file」、「。trash /」などのファイル、およびフォルダー自体を除外できます(つまり、ファイル情報のみが必要です)。

アップデート:

結果は次のとおりです。

$ time (find . -ls)
real    0m5.947s
user    0m0.393s
sys     0m0.682s

$ time (ls -lhR)
real    0m14.208s
user    0m0.978s
sys     0m2.510s

$ time (find ./ -exec ls -lh {} \;)
way too long
4

2 に答える 2

2

はい、かなりです。より高速な代替手段は次のとおりです。

  • ls一度に1つのファイルよりも大きなバッチでコマンドを実行する:

    find . -print0 | xargs -0 ls -lh
    
  • 別のコマンドfindの代わりにファイルリストを実行する:ls

    find . -ls
    
  • find完全にスキップしてls再帰的に実行した場合:

    ls -lhR
    
于 2013-01-28T21:43:57.700 に答える
2

\;toを変更すると、コマンドラインにできるだけ多くのファイルを詰め込むように+指示され、の呼び出し回数が減り、パフォーマンスが大幅に向上します。findls

于 2013-01-28T21:44:11.923 に答える