Previous: Truenames, Up: Information about Files
本節では、ファイルの内容以外の詳しい情報を得るための関数を説明します。 この情報には、参照パーミッションを制御するモードビット、 所有者とグループの番号、名前の個数、iノード番号、サイズ、 参照時刻と更新時刻が含まれます。
この関数はfilenameのモードビットを整数で返す。 モードビットはファイルのパーミッションとも呼ばれ、 UNIX流の参照制御を指定する。 最下位ビットが1であると、当該ファイルはすべてのユーザーが実行でき、 2番目の下位ビットが1であると、当該ファイルはすべてのユーザーが書ける といった具合である。
戻り値の最大値は4095(8進数7777)であり、これは、 だれもが読み/書き/実行でき、 所有者とグループの両者にビットsuidが設定してあり、 スティッキービットも設定されていることを意味する。
(file-modes "~/junk/diffs") 492 ; 10進整数 (format "%o" 492) "754" ; 8進数に変換 (set-file-modes "~/junk/diffs" 438) nil (format "%o" 438) "666" ; 8進数に変換 % ls -l diffs -rw-rw-rw- 1 lewis 0 3063 Oct 30 16:00 diffs
この関数は、ファイルfilenameの 名前(つまりハードリンク)の個数を返す。 ファイルが存在しなければ、この関数は
nil
を返す。 シンボリックリンクはそれが指すファイルの名前とはみなさないので、 シンボリックリンクはこの関数には効果を持たない。% ls -l foo* -rw-rw-rw- 2 rms 4 Aug 19 01:27 foo -rw-rw-rw- 2 rms 4 Aug 19 01:27 foo1 (file-nlinks "foo") 2 (file-nlinks "doesnt-exist") nil
この関数はファイルfilenameの属性のリストを返す。 オープンできないファイルを指定すると
nil
を返す。リストの要素は順につぎのとおりである。
- ディレクトリは
t
、 シンボリックリンクは(それが指す名前の)文字列、 テキストファイルはnil
である。- ファイルの名前の個数。 別の名前、つまり、 ハードリンクは関数
add-name-to-file
(see Changing Files) を使って作成する。- ファイルのuid(所有者番号)。
- ファイルのgid(グループ番号)。
- 2つの整数から成るリストとしての最終参照時刻。 最初の整数は時刻の上位16ビットであり、2番目は下位16ビット。 (これは
current-time
の値と同様。 Time of Dayを参照。)- 2つの整数から成るリストとしての最終更新時刻(上記と同様)。
- 2つの整数から成るリストとしての最終状態更新時刻(上記と同様)。
- バイト単位でのファイルのサイズ。
- ‘ls -l’と同様のファイルのモードを表す10文字の文字列。
- もしファイルを削除して再度作成した場合に ファイルのgid(グループ番号)が変わる場合には
t
。 さもなければnil
。- ファイルのiノード番号。 可能ならばこれは整数である。 iノード番号がEmacs Lispの整数として表現できないほど大きな場合、 値は
(
high.
low)
の形である。 ただし、lowは下位16ビットである。- ファイルが置いてあるファイルシステムのファイルシステム番号。 この要素とファイルのiノード番号により、 システム上の任意の2つのファイルを区別するために十分な情報を与える。 つまり、2つのファイルが同じ値のこれらの番号を持つことはない。
たとえば、files.texiのファイル属性はつぎのようである。
(file-attributes "files.texi") (nil 1 2235 75 (8489 20284) (8489 20284) (8489 20285) 14906 "-rw-rw-rw-" nil 129500 -32252)この意味はつぎのとおりである。
nil
- ディレクトリでもシンボリックリンクでもない。
1
- 唯一の名前(カレントディレクトリでfiles.texi)を持つ。
2235
- uid(ユーザー番号)2235のユーザーが所有している。
75
- gid(グループ番号)75のグループに属する。
(8489 20284)
- 最後に参照されたのは8月19日00時09分である。
(8489 20284)
- 最後に更新されたのは8月19日00時09分である。
(8489 20285)
- 最後にこのiノードを変更したのは8月19日00時09分である。
14906
- 長さは14906バイトである。
"-rw-rw-rw-"
- モードは、所有者/グループ/その他は読み書きできる。
nil
- 再度作成してもgid(グループ番号)は保存される。
129500
- iノード番号は129500。
-32252
- ファイルシステム番号は-32252。