RubyのFile::Stat#modeで返ってくる数字について
instance method File::Stat#mode (Ruby 2.5.0)は6桁の整数を返してくれて、下3桁はファイルのパーミッションを表しているが、100や120, 40となっている頭2~3桁は何やねんということで調べてみた結果。
この3桁の数字はファイルタイプを表している。Michael Kerrisk - man7.orgのinode(7) - Linux manual pageに書いてあった。ついでに$ls -l
で先頭に表示されるファイルタイプの英字1文字への対応も記した。(man lsで参照できる)
S_IFSOCK 0140000 socket # s S_IFLNK 0120000 symbolic link # l S_IFREG 0100000 regular file # - S_IFBLK 0060000 block device # b S_IFDIR 0040000 directory # d S_IFCHR 0020000 character device # c S_IFIFO 0010000 FIFO # p
ちなみにこんなこと調べなくてもinstance method File::Stat#ftype (Ruby 2.5.0)がファイルタイプを文字列で返してくれるので便利。
参考 : <sys/stat.h>