「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 パス名の解決。

関連情報