GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Create_002fDelete-Dirs.html ・ emacs-doc.conao3.com

26.11 ディレクトリの作成、コピー、削除

ほとんどのEmacs Lispのファイル操作関数は、ディレクトリに対して使用するとエラーが発生します。例えば、delete-fileでディレクトリを削除することはできません。ディレクトリの作成や削除を行うための専用関数が用意されています。

コマンド: make-directory dirname &optional parents

このコマンドは dirname という名前のディレクトリを作成します。インタラクティブな呼び出しでは常にそうであるように、parents が nil でない場合、それは親ディレクトリがまだ存在しないのであれば、まずそれらを作成することを意味します。関数としての make-directory は、dirname が既にディレクトリとして存在し、かつ parents が nil でない場合に nil 以外を返し、dirname の作成に成功した場合には nil を返します。mkdir はこれのエイリアスです。

コマンド: make-empty-file filename &optional parents

このコマンドは、filename という名前の空ファイルを作成します。make-directory として、parents が nil でない場合は、親ディレクトリを作成します。filename が既に存在する場合、このコマンドはエラーを通知します。

コマンド: copy-directory dirname newname &optional keep-time parents copy-contents

このコマンドは、dirname という名前のディレクトリを newname にコピーします。newname がディレクトリ名である場合、dirname はその配下のサブディレクトリにコピーされます。ディレクトリ名を参照してください。

コピーしたファイルのファイルモードを、常に対応する元のファイルと同じに設定します。

第3引数 keep-time が non-nil であることは、コピーしたファイルの更新日時を保持することを意味します。接頭辞引数を指定すると、keep-time は non-nil になります。

4番目の引数 parents は、親ディレクトリが存在しない場合に作成するかどうかを指定します。対話モードでは、デフォルトでこの処理が行われます。

The fifth argument copy-contents, if non-nil, means to copy the contents of dirname directly into newname if the latter is a directory name, instead of copying dirname into it as a subdirectory.

コマンド: delete-directory dirname &optional recursive trash

このコマンドは、dirname という名前のディレクトリを削除します。関数 delete-file はディレクトリであるファイルには適用されず、それらには delete-directory を使用する必要があります。recursive が nil であり、かつディレクトリにファイルが含まれている場合、delete-directory はエラーを通知します。recursive が nil でない場合、delete-directory が処理を行う前に他のプロセスによってディレクトリやそのファイルが削除されたという理由だけで、エラーになることはありません。

delete-directory は親ディレクトリレベルでのみシンボリックリンクを辿ります。

オプション引数 trash が nil 以外で、変数 delete-by-moving-to-trash が nil 以外の場合、このコマンドはファイルを削除せずにシステムのゴミ箱に移動します。The GNU Emacs Manual の Miscellaneous File Operations を参照してください。対話的に呼び出された場合、接頭辞引数が指定されていなければ trash は t となり、指定されていれば nil となります。