首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查所提供的路径是符号链接还是常规路径?

问如何检查所提供的路径是符号链接还是常规路径?
EN

Stack Overflow用户
提问于 2014-04-11 05:26:05
回答 2查看 128关注 0票数 0

我不是一个粉状的shell脚本程序员,这可能是基本的方法,但我需要知道如何才能检查提供的路径是一个符号链接还是一个常规路径?

我有路径/用户/家庭/san/驱动器2

其中,drive2是指向

/drive在根级,所以使用shell脚本中的哪个命令,我可以检查路径是一个符号链接还是常规路径?

另外,在任何路径上都可能遇到符号链接,那么在每个路径分隔符之后,我们如何递归地检查它是否是符号链接?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-11 05:31:03

注意lstat()函数。

在此检查st_mode字段:S_ISLNK(m)

或者你可以做这样的事情

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2014-04-11 10:14:24

您可以使用readlink -f /user/home/san/drive2获得后面的规范路径。也就是说,没有任何符号链接的实际路径。推论是,如果readlink -f的结果与您给出的论点有任何不同,那么在原始路径的某个地方就会有一个符号联系。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23004173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档