Next: , Previous: , Up: Files   [Contents][Index]


24.10 ディレクトリーの作成・コピー・削除

Emacs Lispのファイル操作関数のほとんどは、ディレクトリーであるようなファイルに使用されたときはエラーとなります。たとえばdelete-fileでディレクトリーの削除はできません。以下のスペシャル関数はディレクトリーの作成と削除を行うために存在します。

Command: make-directory dirname &optional parents

このコマンドはdirnameという名前のディレクトリーを作成する。parentsが非nilの場合(インタラクティブな呼び出しでは常に非nil)には、その親ディレクトリーがまだ存在しなければ最初にそれを作成することを意味する。

mkdirはこれにたいするエイリアス。

Command: copy-directory dirname newname &optional keep-time parents copy-contents

このコマンドはdirnameという名前のディレクトリーをnewnameにコピーする。newnameが既存のディレクトリーなら、dirnameはそのサブディレクトリーにコピーされるだろう。

これは常にコピーされるファイルのファイルモードを、対応する元のファイルモードと一致させる。

3つ目の引数keep-timeが非nilなら、それはコピーされるファイルの修正時刻を保持することを意味する。プレフィックス引数を与えると、keep-timeは非nilになる。

4つ目の引数parentsは、親ディレクトリーが存在しない場合に作成するかどうかを指定する。インタラクティブな場合には、これはデフォルトで発生する。

5つ目の引数copy-contentsが非nilなら、それはnewnameが既存のディレクトリーならば、そのサブディレクトリーとしてdirnameをコピーするかわりにdirnameのコンテンツをnewnameにコピーする。

Command: delete-directory dirname &optional recursive trash

このコマンドはdirnameという名前のディレクトリーを削除する。関数delete-fileはディレクトリーであるようなファイルにたいして機能しない。それらにたいしてはdelete-directoryを使用しなければならない。recursivenilでディレクトリー内にファイルが存在する場合には、delete-directoryはエラーをシグナルする。

delete-directoryは親ディレクトリーの階層のシンボリックリンクだけをフォローする。

オプション引数trashが非nil、かつ変数delete-by-moving-to-trashが非nilなら、このコマンドはファイルを削除するかわりにシステムのTrash(ゴミ箱)にファイルを移動する。Miscellaneous File Operations in The GNU Emacs Manualを参照のこと。インタラクティブに呼び出された際には、プレフィックス引数がなければtrasht、それ以外はnil