Creating, Copying and Deleting Directories
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 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.
- Command: make-empty-file filename &optional parents
This command creates an empty file named filename. As
make-directory
, this command creates parent directories if parents is non-nil
. If 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 dirname to newname. If 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 keep-time non-
nil
means to preserve the modification time of the copied files. A prefix arg makes keep-time non-nil
.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 usedelete-directory
for them. If recursive isnil
, 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 beforedelete-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 variabledelete-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, trash ist
if no prefix argument is given, andnil
otherwise.
Copyright © 1990-1996, 1998-2021 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Create_002fDelete-Dirs.html