ぼんやりと考えている人

ひろしまなおき (廣島直己)
名前: ひろしまなおき (廣島直己)
住処: シリコンバレー
職業: しがないプログラマ
家族: 愛妻一人、息子一人、娘一人
道具: ハーレー二台、ギター三本
電紙: n at h7a.org

Twitter

« January 2009
S M T W T F S
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

以前にぼんやりと考えたこと

最近のコメント

  • ひろしま (ケータイがあろう…): 子どもにネットを自由に使わせるのは、ぼくも大反対で…
  • noriyukiokada (ケータイがあろう…): ネットの自由すぎるところがちょっと怖いんですよね。…
  • Shin (ケータイがあろう…): まだ、書かれてから十二時間しか経っていないこの文か…
  • ひろしま (そろそろ JTPA シ…): ぼくの熱狂的ファン度ではぼくも負けていないつもりな…
  • 春子 (そろそろ JTPA シ…): ITとかちんぷんかんぷんなのに、危うく廣島さん会いた…
  • ひろしま (虫歯にならない方…): ミュータンス菌の感染経路に関しては、母からという説…
  • kenn (虫歯にならない方…): 虫歯のもとはミュータンス菌ですが、それは先天的なも…
  • ひろしま (前略、ユキ子様へ…): それもまた凄いですね。。。 最初からそれだとかなり滅…
  • chika (前略、ユキ子様へ…): 私昔アメリカから日本に引っ越したとき、引越し荷物を…
  • よーこ (ミイラになってい…): 子孫にも日本語を教えてください。

  • Powered by Pivot - 1.40.5: 'Dreadwind'
  • SPAM Poison
  • XMLフィード(RSS 1.0)
  • Atomフィード

26 April '2007 - 13:59 | 技術動向 左から右へと受け流す

ムーディ勝山は「右から左へと受け流す」と歌っているけれど、それとは正反対の方向に受け流すのがプログラマの流儀。

つまり、式は左から評価されていくのが正しいし、それこそが期待される動作。評価の順番は処理系におまかせという言語もあるけれど、今時、そんなものを使う必要はない。って、いまの僕はそれがメインの言語なのだけれど。

って、何の話かと思いきや、なんのことはない、find という便利なコマンドの話で、こいつも例外じゃないよ、という話。

$ ls
aaa.c bbb.c ccc.c ddd.c eee.c fff.c foo.c fubar.c
$ find . -name 'f*.c' -print
./fff.c
./foo.c
./fubar.c
$ find . -print -name 'f*.c'
.
./aaa.c
./bbb.c
./ccc.c
./ddd.c
./eee.c
./fff.c
./foo.c
./fubar.c

と、これを見て全く意味が分からない人は、たぶんこのコマンドの対象外なので以下は読む必要ないです。なにかの間違いで「黒いウィンドウ」が開いたら、びっくりしてポチっと閉じるのが吉。

というわけで、上のコマンドの最後のやつが問題。そう、'f*.c' が効いてない。

これはなぜかというと、-print ってのは、なんでも条件を true にしてしまう効果があるので、最後に書かないと意味がない。他には、-print0 と -ls も同じ効果があるので、これらも条件式の最後に書かないと意味がない。

だから、たとえば、「いまどきfindとxargsを使う時は-print0と-0を忘れずに」で紹介されている

find . -type f -print0 -name '*~' | xargs -0 rm

なんてことをやった日には、えらいことになります。

emacs が作ったバックアップファイルを全部削除しようと思って上のコマンドをコピペして実行すると、-name '*~' の評価を待たずに -print0 されてしまうので、バックアップファイルだけでなしに、あなたのファイルは「全部」消去されてしまいます。そこに残るのは空っぽのディレクトリだけという無惨な状況になるわけですね。南無阿弥陀仏。

まあ、不用意に rm コマンドを打って死亡するということは、誰しも通る、そして通らねばならない道です。ぼくも、rm -rf とタイプしたら、なぜかそこが / で、ぼくも root だった、ということを過去に二度ほど経験して立派な大人になりました。

まあ、otsune さんは、ちゃんと検証せずにコピペでコマンドを実行すると痛い目に遭いますよってことを教えたかったのかも知れないし、そうだとしたら余計なことをしてしまってるのかも知れない。

Trackback link:

トラックバック用URLを生成するには、JavaScriptを有効にしてください。


やっちゃいましたね^^; やっぱみな通る道なんですね。 それで大人になっていく。 find って以外に便利なコマンドなんで、気をつけないとやばいっすね。 でも、ムーディーとはかなり新しいねたですね? 日本に帰っておられてときにみたのですか?
いえいえ、日本に行く前です。そのための youtube ですから。まあ、ムーディに限らずお笑い系はほとんど見てますが、それが何か。
ちなみに、ムーディーではなく、ムーディです。何かの番組で本人がそう明言してました。
やっとツッコミ来たー……ではなく、素でヤバい。ピュアに間違えてました。
とりあえず放置しとくと害があるので、私の日記の方はこの件を追記の上で訂正します。

  
情報を記憶する

Emoticons /

酢ハムがいったいどんなハムなのかはともかく…
 

 

通知:
非公開:

注意: 使用できるタグは <b> と <i> のみです。URLやメールアドレスはそのまま記述すればリンクになります。