tree.rb
今日は久しぶりに,Rubyあれこれのコードを写経しながら勉強.今回のお題は,http://homepage1.nifty.com/~tetsu/ruby/cmd/tree.htmlです.
少なからず,ボクのmacにtreeコマンドは確認できなかったので,丁度良い機会です.完成したら/usr/local/binにでも突っ込むか,ぐらいの意気込みでやりました.
なんとか写経できましたが,「tree.rb -d ~」なんてしてしまうと,大変でした.あちゃーって.それじゃ復習をしていきます
lstat
Fileオブジェクトの,lstatというメソッド.シンボリックリンクに対してリンクそのものの情報を返すんだそうで.シンボリックリンクじゃなかったら,普通に情報を返すとか.
irb(main):001:0> File.lstat("tree.rb") => #<File::Stat dev=0xe000002, ino=2249039, mode=0100755, nlink=1, uid=501, gid=501, rdev=0x0, size=1756, blksize=4096, blocks=8, atime=Fri May 05 22:19:00 JST 2006, mtime=Fri May 05 22:17:56 JST 2006, ctime=Fri May 05 22:18:14 JST 2006>
しかしながら,.directory?がどのようにしてそのファイルないしディレクトリを,この情報からディレクトリであるか否かを判別しているのか・・・.
irb(main):001:0> File.lstat("study") => #<File::Stat dev=0xe000002, ino=1742386, mode=040755, nlink=23, uid=501, gid=501, rdev=0x0, size=782, blksize=4096, blocks=0, atime=Fri May 05 22:24:40 JST 2006, mtime=Fri May 05 22:19:12 JST 2006, ctime=Fri May 05 22:19:12 JST 2006>
これはstudyというディレクトリの情報.あ,modeで判別してるっぽいですね.