本節の関数は、ファイルを改名/コピー/削除/リンクしたり、 ファイルのモードを設定するためのものです。
引数newnameをとる関数では、 newnameで指定したファイルが既存の場合、 関数の動作は引数ok-if-already-existsの値に依存します。
nil
であると、
エラーfile-already-exists
を通知する。
この関数は、oldnameで指定したファイルに 追加の名前newnameを与える。 つまり、newnameはoldnameへの新たな『ハードリンク』になる。
つぎの例では、2つのファイルfooとfoo3がある。
% ls -li fo* 81908 -rw-rw-rw- 1 rms 29 Aug 18 20:32 foo 84302 -rw-rw-rw- 1 rms 24 Aug 18 20:31 foo3
add-name-to-file
を呼んでハードリンクを作成し、 ファイル一覧を表示し直す。 1つのファイルに2つの名前fooとfoo2があることがわかる。(add-name-to-file "foo" "foo2") ⇒ nil % ls -li fo* 81908 -rw-rw-rw- 2 rms 29 Aug 18 20:32 foo 81908 -rw-rw-rw- 2 rms 29 Aug 18 20:32 foo2 84302 -rw-rw-rw- 1 rms 24 Aug 18 20:31 foo3最後につぎの式を評価し
(add-name-to-file "foo" "foo3" t)ファイル一覧を表示し直す。 今度は、1つのファイルに3つの名前foo、foo2、foo3がある。 古いfoo3の内容は失われている。
(add-name-to-file "foo1" "foo3") ⇒ nil % ls -li fo* 81908 -rw-rw-rw- 3 rms 29 Aug 18 20:32 foo 81908 -rw-rw-rw- 3 rms 29 Aug 18 20:32 foo2 81908 -rw-rw-rw- 3 rms 29 Aug 18 20:32 foo31つのファイルに複数の名前を許さないオペレーティングシステムでは、 この関数は意味がない。
File Attributesの
file-nlinks
も参照。
このコマンドは、ファイルfilenameをnewnameと改名する。
filenameにfilename以外の名前があれば、 それらの名前は存在し続ける。 実際、
add-name-to-file
で名前newnameを追加してから filenameを削除すると、一時的な中間状態があることを除けば、 改名と同じ効果がある。対話的に呼び出されると、この関数は ミニバッファでfilenameとnewnameを聞く。 また、newnameが既存であると確認を求める。
このコマンドはファイルoldnameをnewnameへコピーする。 oldnameが存在しないとエラーを通知する。
timeが
nil
以外であると、 この関数は新たなファイルに古いファイルと同じ最終更新時刻を与える。 (これは特定のオペレーティングシステムでのみ動作する。) 時刻設定でエラーがあると、copy-file
は エラーfile-date-error
を通知する。対話的に呼び出されると、この関数は ミニバッファでoldnameとnewnameを聞く。 また、newnameが既存であると確認を求める。
このコマンドは、シェルコマンド‘rm filename’と同様に ファイルfilenameを削除する。 ファイルに複数の名前があると、他の名前では存在し続ける。
ファイルが存在しなかったり削除できないと、 エラー
file-error
の適切な種類が通知される。 (UNIXでは、ファイルを収めたディレクトリに書けると 当該ファイルは削除可能である。)Create/Delete Dirsの
delete-directory
も参照。
このコマンドは、filenameに対するシンボリックリンクnewnameを 作成する。 これはシェルコマンド‘ln -s filename newname’と同じである。
対話的に呼び出されると、この関数は ミニバッファでfilenameとnewnameを聞く。 また、newnameが既存であると確認を求める。
この関数はfilenameのモードビットを mode(整数であること)と設定する。 modeの下位12ビットのみを使う。
この関数は、Emacsやそのサブプロセスが作成する新規ファイルの デフォルトのファイルモードを設定する。 Emacsが作成する各ファイルは最初このモードになる。 UNIXでは、デフォルトのモードは『umask』の値の1の補数である。
引数modeは整数であること。 ほとんどのシステムでは、modeの下位9ビットのみが意味を持つ。
既存ファイルの変更を保存することはファイルの作成とはみなさないため、 ファイルのモードは変わらず、デフォルトのファイルモードを使わない。
MS-DOSでは、『実行可能』ファイルモードビットのようなものはありません。
そのためEmacsは、‘.com’、‘.bat’、‘.exe’のいずれかで
終る名前のファイルを実行可能であるとみなします。
これは、file-modes
やfile-attributes
が返す値に反映されます。