exec
オプション
find
コマンドのexec
オプションを使用することで取得したパスに対してコマンドを実行できます。
以下のように記述すると取得したパス一つ一つに対してコマンドが実行されます。
find . -name "*.txt" -exec rm {} \;
実際に実行されるコマンドは以下のようになります。
$ rm "./sample1.txt"
$ rm "./sample2.txt"
$ rm "./sample3.txt"
$ rm "./sample4.txt"
$ rm "./sample5.txt"
以下のようにすると取得したパスを並べた状態で引数として実行します。
find . -name "*.txt" -exec rm {} +
実際に実行されるコマンドは以下のようになります。
$ rm "./sample1.txt" "./sample2.txt" "./sample3.txt" "./sample4.txt" "./sample5.txt"
xargs
コマンド
またxargs
コマンドを使用することで取得したパスに対してコマンドを実行できます。
find . -name "*.txt" | xargs rm
上記のように記述すると以下のようにrm
が実行されます。
$ rm "./sample1.txt" "./sample2.txt" "./sample3.txt" "./sample4.txt" "./sample5.txt"
取得したファイルパス一つ一つに対して実行したい場合には以下のようにします。
find . -name "*.txt" | xargs -L 1 rm
$ rm "./sample1.txt"
$ rm "./sample2.txt"
$ rm "./sample3.txt"
$ rm "./sample4.txt"
$ rm "./sample5.txt"