Most Emacs Lisp file-manipulation functions get errors when used on files that are directories. For example, you cannot delete a directory with
delete-file. These special functions exist to create and delete directories.
command make-directory dirname \&optional parents
This command creates a directory named
parents is non-
nil, as is always the case in an interactive call, that means to create the parent directories first, if they don’t already exist.
mkdir is an alias for this.
command make-empty-file filename \&optional parents
This command creates an empty file named
make-directory, this command creates parent directories if
parents is non-
filename already exists, this command signals an error.
command copy-directory dirname newname \&optional keep-time parents copy-contents
This command copies the directory named
newname is a directory name,
dirname will be copied to a subdirectory there. See Directory Names.
It always sets the file modes of the copied files to match the corresponding original file.
The third argument
nil means to preserve the modification time of the copied files. A prefix arg makes
The fourth argument
parents says whether to create parent directories if they don’t exist. Interactively, this happens by default.
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.
command delete-directory dirname \&optional recursive trash
This command deletes the directory named
dirname. The function
delete-file does not work for files that are directories; you must use
delete-directory for them. If
nil, and the directory contains any files,
delete-directory signals an error. If recursive is non-
nil, there is no error merely because the directory or its files are deleted by some other process before
delete-directory gets to them.
delete-directory only follows symbolic links at the level of parent directories.
If the optional argument
trash is non-
nil and the variable
delete-by-moving-to-trash is non-
nil, this command moves the file into the system Trash instead of deleting it. See Miscellaneous File Operations in The GNU Emacs Manual. When called interactively,
t if no prefix argument is given, and