2010-06-13 109 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 
相關問題