GNU Emacs Lisp Reference Manual
The functions in this section rename, copy, delete, link, and set the modes of files.
In the functions that have an argument newname, if a file by the name of newname already exists, the actions taken depend on the value of the argument ok-if-already-exists:
file-already-exists error if
ok-if-already-exists is nil.
In the first part of the following example, we list two files, foo and foo3.
% ls -l fo* -rw-rw-rw- 1 rms 29 Aug 18 20:32 foo -rw-rw-rw- 1 rms 24 Aug 18 20:31 foo3
Then we evaluate the form (add-name-to-file "~/lewis/foo" "~/lewis/foo2"). Again we list the files. This shows two names,
foo and foo2.
(add-name-to-file "~/lewis/foo1" "~/lewis/foo2")
=> nil
% ls -l fo*
-rw-rw-rw- 2 rms 29 Aug 18 20:32 foo
-rw-rw-rw- 2 rms 29 Aug 18 20:32 foo2
-rw-rw-rw- 1 rms 24 Aug 18 20:31 foo3
Finally, we evaluate the following:
(add-name-to-file "~/lewis/foo" "~/lewis/foo3" t)
and list the files again. Now there are three names for one file: foo, foo2, and foo3. The old contents of foo3 are lost.
(add-name-to-file "~/lewis/foo1" "~/lewis/foo3")
=> nil
% ls -l fo*
-rw-rw-rw- 3 rms 29 Aug 18 20:32 foo
-rw-rw-rw- 3 rms 29 Aug 18 20:32 foo2
-rw-rw-rw- 3 rms 29 Aug 18 20:32 foo3
This function is meaningless on VMS, where multiple names for one file are not allowed.
See also file-nlinks in File Attributes.
If filename has additional names aside from filename, it
continues to have those names. In fact, adding the name newname
with add-name-to-file and then deleting filename has the
same effect as renaming, aside from momentary intermediate states.
In an interactive call, this function prompts for filename and newname in the minibuffer; also, it requests confirmation if newname already exists.
If time is non-nil, then this functions gives the new
file the same last-modified time that the old one has. (This works on
only some operating systems.)
In an interactive call, this function prompts for filename and newname in the minibuffer; also, it requests confirmation if newname already exists.
rm filename. If the file has multiple names, it continues
to exist under the other names.
A suitable kind of file-error error is signaled if the file
does not exist, or is not deletable. (On Unix, a file is deletable if
its directory is writable.)
See also delete-directory in Create/Delete Dirs.
ln -s filename newname.
In an interactive call, this function prompts for filename and newname in the minibuffer; also, it requests confirmation if newname already exists.
The argument mode must be an integer. Only the low 9 bits of mode are used.
Saving a modified version of an existing file does not count as creating the file; it does not change the file's mode, and does not use the default file protection.
On MS-DOS, there is no such thing as an ``executable'' file mode bit.
So Emacs considers a file executable if its name ends in .com,
.bat or .exe. This is reflected in the values returned
by file-modes and file-attributes.