【发布时间】:2014-04-11 05:26:05
【问题描述】:
我不是 powere shell 脚本程序员,这可能是基本的,但我需要知道如何检查提供的路径是符号链接还是常规路径?
我有一个路径 /user/home/san/drive2
其中 drive2 是指向
的符号链接/drive 在根级别,所以使用 shell 脚本中的什么命令我可以检查路径是符号链接还是常规路径?
另外,任何路径都可能遇到符号链接,那么我们如何在每个路径分隔符之后递归检查它是否是符号链接?
【问题讨论】:
我不是 powere shell 脚本程序员,这可能是基本的,但我需要知道如何检查提供的路径是符号链接还是常规路径?
我有一个路径 /user/home/san/drive2
其中 drive2 是指向
的符号链接/drive 在根级别,所以使用 shell 脚本中的什么命令我可以检查路径是符号链接还是常规路径?
另外,任何路径都可能遇到符号链接,那么我们如何在每个路径分隔符之后递归检查它是否是符号链接?
【问题讨论】:
注意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
【讨论】:
您可以使用readlink -f /user/home/san/drive2 获取后面的规范 路径。也就是说,没有任何符号链接的实际路径。一个推论是,如果 readlink -f 的结果与您提供给它的参数有任何不同,那么在原始路径中的某处有一个符号链接。
【讨论】: