Почему «ln -s A B» отличается от «ln -s A/ B»?

Почему «ln -s A B» отличается от «ln -s A/ B»?

Разве это не Aто же самое, что A/?

Почему к ним относятся по-разному ln?

решение1

EDIT: Я неправильно понял вопрос - я думал, вы спрашиваете о ls, но вы спрашивали о ln- спасибо, Мартейн, за комментарий.

В любом случае, я не вижу никакой разницы с моей стороны:

$ 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 Разрешение имени пути.

Связанный контент