
ウノウラボ Unoh Labs: コマンドラインで作業する上で知っておくといいテクニック
404 Blog Not Found:勝手に添削 - find(1)
わたしなら
いまどき fork/exec rm のオーバーヘッドがどれほどのものか。
xargs を使うとき、rm が 1回だけ実行されるときと、ARG_MAX を超えたときに
rm が複数回実行されるときの違いにどれほどの差があると言うのか。
誤差の範囲である。
コンピュータが速くなった今、重視すべきは確実性。
という出力をじっくり眺め、問題がないことを確認する。OK なら、最後に "| sh" をつけて
とする。
削除してマズいファイルを見つけたら、grep -v で除外すればよい。
find コマンドは、人が使うには難しすぎる。なんだよ {} \; って。
xargs コマンド は、何をするコマンドなのかさえ直感的にわかりづらい。
わざわざ難しいことをする必要はないではないか。
単純なファイル削除ではあまり利点が見えないかもしれないが、便利なのは例えば
何が起こるかは出力をじっくり観察すればわかる。見よ、この安心感。
…ってちょっと無理があるか? sed の基礎はおさえておかなきゃいけないし、
メタキャラクタ入りのファイルに弱いしなぁ。
sh をつけるやり方を流行らせたいんだが、無理かなー。いやほんと、便利よ。
最初の数行だけ試しに実行したかったら出力をマウスでコピペすればいいし、
コマンドラインだけでがんばるのが厳しかったら、ファイルにリダイレクトして
エディタで中身をいじって
ちなみに環境により挙動が異なる echo(1) は使わず、printf(1) を使うのが
POSIX 的な解かと思います。といっても、まわりの人が全然知らないので
仕事ではあえて使わないけど。
% find . -name '*~' -exec rm {} \;
404 Blog Not Found:勝手に添削 - find(1)
% find . -type f -name '*~' | xargs rm
% find . -type f -name '*~' | perl -nle unlink
わたしなら
% find . -type f -name '*~' | sed 's/^/rm /'で確認し、OK なら
% find . -type f -name '*~' | sed 's/^/rm /' | shで消します。
いまどき fork/exec rm のオーバーヘッドがどれほどのものか。
xargs を使うとき、rm が 1回だけ実行されるときと、ARG_MAX を超えたときに
rm が複数回実行されるときの違いにどれほどの差があると言うのか。
誤差の範囲である。
コンピュータが速くなった今、重視すべきは確実性。
% find . -type f -name '*~' | sed 's/^/rm /'として、
rm ./hoge~
rm ./dir/fuga~
rm ./foo/bar/baz~
という出力をじっくり眺め、問題がないことを確認する。OK なら、最後に "| sh" をつけて
% find . -type f -name '*~' | sed 's/^/rm /' | sh
とする。
削除してマズいファイルを見つけたら、grep -v で除外すればよい。
find コマンドは、人が使うには難しすぎる。なんだよ {} \; って。
xargs コマンド は、何をするコマンドなのかさえ直感的にわかりづらい。
わざわざ難しいことをする必要はないではないか。
単純なファイル削除ではあまり利点が見えないかもしれないが、便利なのは例えば
% find . -name \*.html | sed "s|\(.*\)|command < \1 > out/\1 | "などというとき。出力が
command < hoge.html > out/hoge.htmlとなっていることをじっくり確認して、最後に "| sh" を付けて実行する。
何が起こるかは出力をじっくり観察すればわかる。見よ、この安心感。
…ってちょっと無理があるか? sed の基礎はおさえておかなきゃいけないし、
メタキャラクタ入りのファイルに弱いしなぁ。
sh をつけるやり方を流行らせたいんだが、無理かなー。いやほんと、便利よ。
最初の数行だけ試しに実行したかったら出力をマウスでコピペすればいいし、
コマンドラインだけでがんばるのが厳しかったら、ファイルにリダイレクトして
エディタで中身をいじって
% sh < command.txtとしてもいい。
ちなみに環境により挙動が異なる echo(1) は使わず、printf(1) を使うのが
POSIX 的な解かと思います。といっても、まわりの人が全然知らないので
仕事ではあえて使わないけど。
スポンサーサイト


