[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [Patch] fix canonicalize-existing vbd file
Keir Fraser writes ("Re: [Xen-devel] [Patch] fix canonicalize-existing vbd file"): > Do you mean to 'test -f "$file"'? A symlink will always fail 'test -f', and > $p can be a symlink. test -f calls stat(2) rather than lstat(2) and only falls back to the latter if the former fails. So if the argument is a link which can be dereferenced, test -f tells you whether the link target is a file. If you want to know whether $file is a file or a symlink to a file test -f "$file" precisely wrong as it is true in both those cases. See http://www.opengroup.org/onlinepubs/009695399/utilities/test.html which says With the exception of the -h file and -L file primaries, if a file argument is a symbolic link, test shall evaluate the expression by resolving the symbolic link and using the file referenced by the link. It's actually true, too: mariner:~/junk> touch a mariner:~/junk> ln -s a b mariner:~/junk> test -f a && echo file file mariner:~/junk> test -f b && echo file file mariner:~/junk> test -L b && echo link link mariner:~/junk> ln -s enoent c mariner:~/junk> test -f c && echo file mariner:~/junk> test -L c && echo link link mariner:~/junk> Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |