[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Top] | [Table des matières] | [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.
The function file-truename
returns the truename of the file
filename. The argument must be an absolute file name.
This function does not expand environment variables. Only
substitute-in-file-name
does that. Voir Definition of substitute-in-file-name.
If you may need to follow symbolic links preceding ‘..’ appearing as
a name component, you should make sure to call file-truename
without
prior direct or indirect calls to expand-file-name
, as otherwise the
file name component immediately preceding ‘..’ will be “simplified
away” before file-truename
is called. To eliminate the need for a
call to expand-file-name
, file-truename
handles ‘~’ in
the same way that expand-file-name
does. Voir la section Functions that Expand Filenames.
This function follows symbolic links, starting with filename, until it finds a file name which is not the name of a symbolic link. Then it returns that file name. This function does not follow symbolic links at the level of parent directories.
If you specify a number for limit, then after chasing through that many links, the function just returns what it has even if that is still a symbolic link.
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" |
Voir la section Buffer File Name, for related information.
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Top] | [Table des matières] | [Index] | [ ? ] |
Ce document a été généré par Eric Reinbold le 13 Octobre 2007 en utilisant texi2html 1.78.