パターンに一致するファイルを再帰的に操作する方法


回答:


20

find

find ~/docs -name "*.txt" -exec touch {} \;
  • 検索する ~/docs
  • nameオプションは、すべての一致するtxtファイルを-  execコマンドを実行しますtouchで置換され、ファイル名に{}
  • \;コマンドを終了し、touch見つかったファイルごとに1回呼び出されます

注意:

  • わずかなバリエーション\+で、最後touchにこれらのファイルすべてを一度に実行する単一のコマンドを作成します。これはすべてのコマンドで可能ではありませtouchんが、影響を受ける多くのファイルがある場合に機能し、数回の呼び出しを節約します。

4
{} \+...より良いここになりtouch1万ファイルとして、例えばので、そのコマンドライン上で多くのファイル名を扱うことができる{} \; 1万に行われる呼び出しtouch...使用して{} \+呼び出します。touchここでは...一度だけ(利用可能なメモリに依存)findのマンページからの抜粋です-exec command {} + ... The command line is built in much the same way that xargs builds its command linesman findドキュメントに詳細があります。
Peter.O

@ Peter.O確かに、他の構文を使用するのは私の習慣です。
slhck

@slhck:オーバーヘッドが大きくなると、速度が大幅に低下します。
Hello71
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.