Go to the first, previous, next, last section, table of contents.

ファイルに関する情報

以下の関数は全て(パス名として解釈される)ストリングに対し操作を行なうため、似 ています。これらは(全て)実際のファイルやディレクトリに関する情報を返すため、 そのアーギュメントは(特に別様に記されていない限り)全て実際のファイルやディレ クトリとして存在していなくてはいけません。

これらの多くは (ストリングでなくてはいけない) パス名のアーギュメントを1つ持ち ます。このパス名は expand-file-name を用いて展開されるため、 (../ を含む)相対 パス名同様、 も正しく扱われます。環境変数 ($HOME 等) は展開されません。

Function: file-modes file-name

この関数は、 file-name のモードビットを integer として返します。このモード ビットは通常 unix のモードビットです。 low-order のビットが 1 の場合、他の 人がそのファイルを実行することができ、2 番目に lowest-order のビットが 1 の場合、他の人が書き込むことができる等。

返すことのできる最大値 4095 (8進で 7777) は、全ての人が読み込み、書き込 み、実行のパーミッションを持ち、そのファイルには others と group に対する suid がセットされており、sticky bit がセットされていることを意味します。

(例が混乱している!!)

  (file-modes " /junk/diffs")
  => 492
  (set-file-modes " /junk/diffs" 4095)
  => nil
  lewis@slug[43] % ls -l diffs
  -rwxr-xr--  1 lewis    0           3063 Oct 30 16:00 diffs

Function: file-directory-p pathname

この関数は、 pathname が既存のディレクトリの場合 t を返し、そうでない場合 nil を返します。

  (file-directory-p "~rms")
  => t
  (file-directory-p "~rms/lewis/file.texinfo")
  => nil
  (file-directory-p "~rms/lewis/no-such-file")
  => nil
  (file-directory-p "$HOMES")
  => nil
  (file-directory-p (substitute-in-file-name "$HOME"))
  => t

Function: file-exists-p pathname

この関数は、 pathname が存在する場合 t を返します。これは必ずしもそのファ イルを読むことができることを意味しません。これは "それが存在するディレクト リにおいてそのディレクトリリストを出すことができる" ことのみを意味します。

"pathname を含むディレクトリにおいてディレクトリリスティングを行なう" パー ミッションを持ってない場合、この結果は nil になります。

Function: file-readable-p pathname

この関数は、 pathname が存在しそれをあなたが読むことができる場合 t を返 し、そうでない場合 nil を返します。

  (file-readable-p "file.texinfo")
  => t
  (file-exists-p "/usr/spool/mqueue")
  => t
  (file-readable-p "/usr/spool/mqueue")
  => nil

Function: file-newer-than-file-p pathname1 pathname2

この関数は、ファイル pathname1 がファイル pathname2 より新しい場合、t を返 します。 pathname1 が存在しない場合、nil を返します。 pathname2 が存在しな い場合、t を返します。

例において、ファイル `aug-19' は 19日に書かれ、`aug-20' は 20日に書かれた とします。ファイル `no-file' は存在しません。

  (file-newer-than-file-p "aug-19" "aug-20")
  => nil
  (file-newer-than-file-p "aug-20" "aug-19")
  => t
  (file-newer-than-file-p "aug-19" "no-file")
  => t
  (file-newer-than-file-p "no-file" "aug-19")
  => nil

Function: file-name-all-versions file dirname

Type Primitive Function SourceFile dired.c ディクトリ dir (訳注:dirname の誤まりでは?)中のファイル名 file の全バージョンのリストを返します。

Function: file-nlinks pathname

この関数は、ファイル pathname の持つ名前(i.e., ハードリンク) の数を返しま す。ファイルが存在しない場合、nil を返します。

  mercury>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

Function: file-symlink-p pathname

pathname がシンボリックリンクの場合、file-symlink-p はそれがリンクされてい るファイルの名前を返します。 pathnameがテキストファイルにリンクされていよ うと、ディレクトリにリンクされていようと、また別のシンボリックリンクにリン クされていようと (2 番目のリンクをたどることはないでしょうが) 違いはありま せん。

pathname がシンボリックリンクでない場合、file-symlink-p は nil を返しま す。 pathname が存在している必要はありません。

  (file-symlink-p "foo")
  => nil
  (file-symlink-p "sym-link")
  => "foo"
  (file-symlink-p "sym-link2")
  => "sym-link"
  (file-symlink-p "/bin")
  => "/pub/bin"

Function: file-writable-p pathname

ユーザーに対し、 pathname が書き込み(もしくは作成)可能な場合、t を返しま す。 "ファイルが存在し、それに書き込むことができる" 場合、それは書き込み可 能(訳注:writable)です。 "ファイルは存在しないが、それが(そこに)存在しなく てはいけないディレクトリが存在し、そのディレクトリに対する書き込みが可能" な場合も書き込み可能です。そうでない場合、file-writable-p は nil を返しま す。

以下に示す例の 3 番目のものにおいて、(ユーザーは)それを作ることはできる が、その親ディレクトリが存在しないため、 foo は書き込み可能ではありませ ん。

  (file-writable-p "~rms/foo")
  => t
  (file-writable-p "/foo")
  => nil
  (file-writable-p "~rms/no-such-dir/foo")
  => nil

Function: file-attributes pathname

ファイル pathname の属性のリストを返します。指定されたファイルをオープンす ることができない場合、nil を返します。

リストの要素は順に、

  1. ディレクトリに対しては t、シンボリックリンク(リンクされている名前) に対 してはストリング、テキストファイルに対しては nil
  2. ファイルに対するリンクの数
  3. ファイルの uid
  4. ファイルの gid
  5. 最後にアクセスされた時間(2つの integer のリスト) 最初の integer は時間 の上位の 16 ビット、2番目は下位の 16 ビット
  6. 最後に修正された時間(2つの integer のリスト) 上記参照
  7. 最後に状態(訳注:status)を変更した時間(2つの integer のリスト) 上記参照
  8. ファイルのバイト数での大きさ
  9. (ls -l で示されるような) 10 個の文字か - (訳注:dash) からなるストリン グで示したファイルモード 10. (ファイルが削除され再び作られると) ファイルの gid が変わる場合 t 11. ファイルの inode 番号 例に示したファイルは、 nil ディレクトリでもシンボリックリンクでもない。 1 1 つしかリンクを持たない、その名前は `file.texinfo'。 2235 uid 2235 のユーザーが所有している。 75 gid 75 のグループに属している。 848920284 最後、Aug 19 00:09 にアクセスされた。 848920284 最後、Aug 19 00:09 にアクセスされた。 848920285 最後、Aug 19 00:09 に inode を変更された。 14906 中に 14906 文字持っている。 -rw-rw-rw- オーナー、グループ、その他(訳注:world) に対し、リードとライト(訳 注: write)のアクセスモードを持っている。 nil 再び作られる場合、同じ gid を保持する。 20920 inode 番号 20920 を持つ。 (file-attributes "file.texinfo") => (nil 1 2235 75 (8489 20284) (8485 20285) 14906 "-rw-rw-rw-" nil 20920)


Go to the first, previous, next, last section, table of contents.