xargsというコマンドがあり、これは左辺の結果を使用して右辺のコマンドを実行できる。
参考サイト
・
逆引きUNIXコマンド/findで検索したファイルを削除したい
/*---------------------------------------------------------------------------*/
find ./ -name '*.log' | xargs rm
/*---------------------------------------------------------------------------*/
上の例だと拡張子がlogのファイルを検索してrmで削除している。
これを利用して何日前のファイルを削除とかができる。
/*---------------------------------------------------------------------------*/
find -mtime +7 | xargs rm
/*---------------------------------------------------------------------------*/
一週間前のファイルを削除。
mtimeオプションは最後に更新された日付に基づいて検索する。+で以前。-で以内。
このままだとfindの結果がない場合にもrmが実行されてエラーが出るので、
結果がない場合はxargsを実行しないようにする。
/*---------------------------------------------------------------------------*/
find -mtime +7 | xargs --no-run-if-empty rm
/*---------------------------------------------------------------------------*/
findは色々検索オプションが指定できて便利そうなので、有効に使っていきたい。