Most Emacs Lisp file-manipulation functions get errors when used on
files that are directories. For example, you cannot delete a directory
delete-file. These special functions exist to create and
make-directorydirname &optional parents
This command creates a directory named dirname. If
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.
copy-directorydirname newname &optional keep-time parents copy-contents
This command copies the directory named dirname to newname. If newname names an existing directory, dirname will be copied to a subdirectory there.
It always sets the file modes of the copied files to match the corresponding original file.
The third argument keep-time non-
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 an existing directory, instead of copying dirname into
it as a subdirectory.
delete-directorydirname &optional recursive trash
This command deletes the directory named dirname. The function
delete-file does not work for files that are directories; you
delete-directory for them. If recursive is
nil, and the directory contains any files,
delete-directory signals an error.
delete-directory only follows symbolic links at the level of
If the optional argument trash is non-
nil and the
variable delete-by-moving-to-trash is non-
command moves the file into the system Trash instead of deleting it.
See Miscellaneous File Operations in The GNU
Emacs Manual. When called interactively, trash is t if
no prefix argument is given, and