2010-06-13 111 views
1

我正在编写我自己的shell程序。我目前正在使用chdir实现cd命令。 我想实现与下列选项中的CD:如何检查路径是实际还是符号链接

  • -P不要跟随符号链接
  • -L跟踪符号链接(默认)

当进入外壳上给定路径,如何找出路径是一个符号链接还是一个绝对路径?

感谢

+0

Unknown和zed_0xff都是正确的,因为您的问题很奇怪。在一个shell脚本中,你可以使用'test'命令(a.k.a.''''),如果你正在编写一个shell,你可以使用'stat()'。 – msw 2010-06-13 16:19:33

回答

3

退房的lstat()功能,你需要使用S_ISLNK在st_mode字段。

+0

这应该是'S_IFLNK' – 2010-06-13 16:23:49

+1

我认为你的意思是'lstat()','stat()'会跟在符号链接 – Hasturkun 2010-06-13 16:43:24

+0

你说得对,已经更正了。 – Unknown 2010-06-13 16:49:37

2
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 
相关问题