我不是一个粉状的shell脚本程序员,这可能是基本的方法,但我需要知道如何才能检查提供的路径是一个符号链接还是一个常规路径?
我有路径/用户/家庭/san/驱动器2
其中,drive2是指向
/drive在根级,所以使用shell脚本中的哪个命令,我可以检查路径是一个符号链接还是常规路径?
另外,在任何路径上都可能遇到符号链接,那么在每个路径分隔符之后,我们如何递归地检查它是否是符号链接?
发布于 2014-04-11 05:31:03
注意lstat()函数。
在此检查st_mode字段:S_ISLNK(m)
或者你可以做这样的事情
if [ -L /path/to/file ]; then
echo "is a symlink!"
else
echo "not a symlink! maybe a directory or regular file, or does not exist"
end发布于 2014-04-11 10:14:24
您可以使用readlink -f /user/home/san/drive2获得后面的规范路径。也就是说,没有任何符号链接的实际路径。推论是,如果readlink -f的结果与您给出的论点有任何不同,那么在原始路径的某个地方就会有一个符号联系。
https://stackoverflow.com/questions/23004173
复制相似问题