為什麼「ln -s A B」與「ln -s A/ B」不同?

為什麼「ln -s A B」與「ln -s A/ B」不同?

不是A一樣嗎A/

為什麼他們會受到不同的對待ln

答案1

編輯:我誤讀了這個問題 - 我以為你在問ls,但你在問ln- 感謝 Martijn 的評論。

無論如何,我認為我這邊沒有任何區別:

$ mkdir 1
$ touch 2
$ ls -l
total 4
drwxr-xr-x 2 user user 4096 2010-12-20 21:48 1
-rw-r--r-- 1 user user    0 2010-12-20 21:48 2
$ ln -s 1 3
$ ln -s 1/ 3s
$ ln -s 2 4
$ ln -s 2/ 4s
$ ls -l
total 4
drwxr-xr-x 2 user user 4096 2010-12-20 21:48 1
-rw-r--r-- 1 user user    0 2010-12-20 21:48 2
lrwxrwxrwx 1 user user    1 2010-12-20 21:48 3 -> 1
lrwxrwxrwx 1 user user    2 2010-12-20 21:48 3s -> 1/
lrwxrwxrwx 1 user user    1 2010-12-20 21:48 4 -> 2
lrwxrwxrwx 1 user user    2 2010-12-20 21:48 4s -> 2/

至於ls我之前的編輯...

可能存在差異,例如符號連結:

$ ls -l
total 0
$ mkdir 1
$ echo 1>1/a
$ find
.
./1
./1/a
$ ln -s 1 2
$ ls -l
total 4
drwxr-xr-x 2 user user 4096 2010-12-19 13:17 1
lrwxrwxrwx 1 user user    1 2010-12-19 13:17 2 -> 1
$ ls -l 1
total 4
-rw-r--r-- 1 user user 1 2010-12-19 13:17 a
$ ls -l 2
lrwxrwxrwx 1 user user 1 2010-12-19 13:17 2 -> 1
$ ls -l 2/
total 4
-rw-r--r-- 1 user user 1 2010-12-19 13:17 a

最好這樣想:

  • ls A清單A
  • ls A/實際上列出了A/.,其中.是表示當前目錄的特殊文件

因此,for symlinksls A列出符號鏈接,而ls A/==ls A/.列出符號鏈接指向的資料夾的內容。

欲了解更多詳細信息,請查看此處:

第 4.12 節路徑名解析。

相關內容