[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The truename of a file is the name that you get by following symbolic links at all levels until none remain, then simplifying away `.' and `..' appearing as name components. This results in a sort of canonical name for the file. A file does not always have a unique truename; the number of distinct truenames a file has is equal to the number of hard links to the file. However, truenames are useful because they eliminate symbolic links as a cause of name variation.
file-truename
returns the truename of the file
filename. The argument must be an absolute file name.
To illustrate the difference between file-chase-links
and
file-truename
, suppose that `/usr/foo' is a symbolic link to
the directory `/home/foo', and `/home/foo/hello' is an
ordinary file (or at least, not a symbolic link) or nonexistent. Then
we would have:
(file-chase-links "/usr/foo/hello") ;; This does not follow the links in the parent directories. => "/usr/foo/hello" (file-truename "/usr/foo/hello") ;; Assuming that `/home' is not a symbolic link. => "/home/foo/hello" |
See section 27.4 Buffer File Name, for related information.