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.mkdiris 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-
nilmeans 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-filedoes not work for files that are directories; you must usedelete-directoryfor them. If recursive isnil, and the directory contains any files,delete-directorysignals 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-directorygets to them.delete-directoryonly follows symbolic links at the level of parent directories.If the optional argument trash is non-
niland the variabledelete-by-moving-to-trashis 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 istif no prefix argument is given, andnilotherwise.
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