为什么“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/.,其中.是一个表示当前目录的特殊文件

因此,对于符号链接ls A列出符号链接,而ls A/==ls A/.列出符号链接指向的文件夹的内容。

欲了解更多详情,请参阅此处:

4.12 节路径名解析。

相关内容