目的
- カレントディレクトリより下にある全ディレクトリ・全ファイルを再帰的に検索して,特定の条件を満たすファイルだけをカレントディレクトリにコピーしたい.
方法
-
findコマンドに-execオプションをつける.
使用例
カレントディレクトリ直下にある全てのpngファイルを~/destというディレクトリにコピーする
find . -name "*.png" -exec cp {} ~/dest/ \;
- 解説
-
cp直後の{}に検索結果のファイル名のリストが格納される. - 最後の
\;は-execの終わりを表す記号.末尾に必ずつける.
-
- 応用例
- 他の動作:
-
cpをmvに変更すれば移動・リネーム -
cpをrmに変更すれば削除
-
- ワイルドカードの使用:
-
"*.png"を"hoge*/*.png"に変更すれば,ファイル名がhogeで始まるすべてのpngファイルが操作対象になる. -
find .の部分をfind fooに変更すれば,カレントディレクトリ直下ではなくfooというディレクトリ直下のファイルが操作対象になる.
-
- 確認しながら操作
-
-execを-okに変更すれば,操作を行う前に逐一確認できる-
find foo -name "hoge*" -ok mv {} ~/dest \;と書けばfooディレクトリ直下にある,ファイルがhogeから始まる全てのファイルに対して1個ずつ「移動しますか?」と確認されyesと入力すれば移動される
-
-
- 他の動作: