アカウント名:
パスワード:
タイトルはスクリプトキディ気取りで。プレーンファイルのみとかログとかはばっさり無視する前提で。ええと、 xargs でファイル名に空白文字を含んだをパイプで引き渡すと意図しない挙動になる具体的には1. 誤った解釈でブランク・キャラ直前でぶった切られた名前で処理。2. その際に本来ありえなかった標準エラー出力がべろべろ吐き出される。は避けるべきではないかと。(エラー出力が処理と同期して得られる保証がないので見て切り分けがつらいはず)
-exec rm は、ファイル一個一個ずつrmコマンドを呼び出すので、xargs の方が望ましいでしょう。
で、xargsで空白文字入りのファイル名がいけるようにするのが、find の -0 オプションと、xargs の -0 オプション。findは空白ではなく、\0 区切りで出力し、xargs は \0 区切りで読み込み分割処理します。
#すでに自己ツッコミが入ってますが、\0区切りなのでteeしたらダメですね。
それにしても、find を今回のネタのように使うときは、毎回「 -mtime の + と - って、どっちが新しいほうだっけ?」って悩んでしまいます。man を見ても微妙な感じなで自身が持てないので、毎回まずprintだけして確認してる…あとは、適当にtouchしたファイルを元に-newer したりとか。これは字面から勘違いしようがないし。
最近は-exec xxx {} \;じゃなくて-exec xxx {} +だなぁ。;をエスケープしなくていいし。
えPOSIXじゃないのはだめ?
最新標準、筋の良さなど多数派として正当とアピールできる観点を無視すればわたしが頑迷な守旧派として悪目立ちできている、ということでいいですね?!やっぽー!
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ研究家
find $DIR -mtime +30 -print -exec rm '{}' \; (スコア:1)
タイトルはスクリプトキディ気取りで。
プレーンファイルのみとかログとかはばっさり無視する前提で。
ええと、 xargs でファイル名に空白文字を含んだをパイプで引き渡すと
意図しない挙動になる
具体的には
1. 誤った解釈でブランク・キャラ直前でぶった切られた名前で処理。
2. その際に本来ありえなかった標準エラー出力がべろべろ吐き出される。
は避けるべきではないかと。
(エラー出力が処理と同期して得られる保証がないので見て切り分けがつらいはず)
Re: (スコア:1)
-exec rm は、ファイル一個一個ずつrmコマンドを呼び出すので、xargs の方が望ましいでしょう。
で、xargsで空白文字入りのファイル名がいけるようにするのが、find の -0 オプションと、xargs の -0 オプション。
findは空白ではなく、\0 区切りで出力し、xargs は \0 区切りで読み込み分割処理します。
#すでに自己ツッコミが入ってますが、\0区切りなのでteeしたらダメですね。
それにしても、find を今回のネタのように使うときは、毎回「 -mtime の + と - って、どっちが新しいほうだっけ?」って悩んでしまいます。man を見ても微妙な感じなで自身が持てないので、毎回まずprintだけして確認してる…
あとは、適当にtouchしたファイルを元に-newer したりとか。これは字面から勘違いしようがないし。
Re:find $DIR -mtime +30 -print -exec rm '{}' \; (スコア:2)
最近は-exec xxx {} \;じゃなくて-exec xxx {} +だなぁ。;をエスケープしなくていいし。
えPOSIXじゃないのはだめ?
Re:find $DIR -mtime +30 -print -exec rm '{}' \; (スコア:1)
最新標準、筋の良さなど多数派として正当とアピールできる観点を無視すれば
わたしが頑迷な守旧派として悪目立ちできている、ということでいいですね?!
やっぽー!