ablog

不器用で落着きのない技術者のメモ

find + xargs でx日より前に更新されたファイルを削除する前に削除対象ファイルのタイムスタンプを確認する

90日よりも前に更新されたファイルを削除しようとして、

$ find . -type f -mtime +90 -print0|xargs -0 rm

↑を実行しようかと。。。
ただ、本当に大丈夫かなということで、

$ find . -type f -mtime +90 -print0|xargs -n1 -0 stat --format=%y|sort -n|perl -nle 'print if($.==1 or eof)'
2008-11-06 16:50:19.000000000 +0900
2010-04-30 13:06:13.000000000 +0900

こんな感じで確認してみた。
無問題。


追記(2010/08/01):

find . -type f -mtime +90 -print0 | xargs -0 rm でファイルが一個も無かった時に rm でエラーになっちゃうのどうにかならないかなぁ

理想的な条件の元、素晴らしいヴィンテージへの期待高まるヨシオリ on Twitter: "find . -type f -mtime +90 -print0 | xargs -0 rm でファイルが一個も無かった時に rm でエラーになっちゃうのどうにかならないかなぁ"

@yoshiori find --exec使うとか?

FJT Seth on Twitter: "@yoshiori find --exec使うとか?"

@yoshiori もしくはxargs -r rm

FJT Seth on Twitter: "@yoshiori もしくはxargs -r rm"

xargs -r (--no-run-if-empty) があった!!

理想的な条件の元、素晴らしいヴィンテージへの期待高まるヨシオリ on Twitter: "xargs -r (--no-run-if-empty) があった!!"

xargs に -r ってオプションあったのか。知らんかった。


id:sett-4 ++, id:Yoshiori ++