findとxargsで再帰的にcpする
※MACターミナル(BSD系)での動作確認です。
.cファイルを再帰的に、カレントディレクトリにcpします。
findの検索結果を、xargsの-Iオプションで、cpに渡します。
$ find . -type f -name "*\.c" | xargs -I{} cp "{}" .
例えば、下記のディレクトリがあったとします。
$ tree . ├── dir001 │ ├── dir │ │ └── file3.c │ └── file3.txt └── dir002 ├── dir │ └── file2.cpp ├── file1c └── file3.txt 4 directories, 5 files
下記が実行結果になります。
カレントディレクトリに、.c ファイルをcpできました。
$ find . -type f -name "*\.c" | xargs -I{} cp "{}" . $ ls dir001 dir002 file3.c
findとxargsで再帰的にmvする
参考:findの-nameオプションでor検索, not検索する
.txtファイルを再帰的に、rmします。
方法は先程と同様になります。
xargsを使ってrmに検索ファイルを渡します。
$ find . -type f -name "*\.txt" | xargs -I{} rm "{}"
下記が実行結果になります。
$ find . -type f -name "*\.txt" | xargs -I{} rm "{}" $ tree . ├── dir001 │ └── dir │ └── file3.c ├── dir002 │ ├── dir │ │ └── file2.cpp │ └── file1c └── file3.c 4 directories, 4 files