複数のサブディレクトリで複数のファイルを見つける方法は?

複数のサブディレクトリで複数のファイルを見つける方法は?

複数のサブディレクトリでファイルの一覧を見つけ、各ファイルのパスをtxtファイルに保存する必要があります。リストにリストされているすべてのファイル名がありますfilenames.txt。私はこれをしようとしています:

while read -r fname; do
    find . -name "$fname" > paths.txt
done < filenames.txt

そうですか?検索するサブディレクトリ(200,000個)が多いことがわかっているにもかかわらず、予想より時間がかかるようです。もっと良い方法がありますか?ありがとう

ベストアンサー1

filenames.txtの各行に対して1回、findを複数回実行しています。これがボトルネックである可能性があります。

逆のプロセスを試してみることもできます。まず、すべてのファイルを見つけて、リストのファイルと比較します。それはまるで

find * > allfiles.txt
grep -f filenames.txt allfiles.txt

おすすめ記事