yupaがエンジニアになるまでを記録するブログ

FjordBootCamp (フィヨルドブートキャンプ ) で学んだことや、趣味のVRに関するメモを記録していきます

RubyのFile::Stat#modeで返ってくる数字について

instance method File::Stat#mode (Ruby 2.5.0)は6桁の整数を返してくれて、下3桁はファイルのパーミッションを表しているが、100や120, 40となっている頭2~3桁は何やねんということで調べてみた結果。

この3桁の数字はファイルタイプを表している。Michael Kerrisk - man7.orginode(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>