xargs で指定したコマンドに引数を渡す場合の工夫

xargsは標準入力を読み込み、それを引数として指定したコマンドを実行することができます。

例えば、以下のシェルスクリプトを実行すると指定したディレクトリにある更新日時が3日前のファイルを削除することができます。

$ find /tmp -mtime +3 -type f | xargs rm 

ところが find でファイルが見つからなかった場合、 rm のオペランドが不足ということになります。

rm: missing operand
Try `rm --help' for more information.

そこで、xargs に –no-run-if-empty というオプションを指定し実行することで、ファイルがない場合の対処ができます。

$ find /tmp -mtime +3 -type f | xargs --no-run-if-empty rm

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です