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
