ディレクトリへのシンボリックリンクに末尾のスラッシュ/を含める必要がありますか?

ディレクトリへのシンボリックリンクに末尾のスラッシュ/を含める必要がありますか?

ディレクトリへのシンボリックリンクは、Ils -lまたはによって異なる結果を生成します。しかし、実際の違いは何ですか?なぜどちらを好むべきですか?ln -s dirln -s dir/

ベストアンサー1

私が考えることができる唯一のことは、スラッシュを追加すると、スラッシュのないリンクがまだ機能し、(ファイルの代わりに)他のオブジェクトを指すので、誰かが実際のディレクトリを削除してファイルに置き換えることからユーザーを「保護」することです。目次)。

[user@host linktest]$ mkdir test
[user@host linktest]$ ln -s test/ slash
[user@host linktest]$ ln -s test noslash
[user@host linktest]$ ls -l
total 4
lrwxrwxrwx 1 paul paul    4 Feb 21 21:00 noslash -> test
lrwxrwxrwx 1 paul paul    5 Feb 21 21:00 slash -> test/
drwxrwxr-x 2 paul paul 4096 Feb 21 20:59 test
[user@host linktest]$ file *slash
noslash: symbolic link to `test'
slash: symbolic link to `test/'
[user@host linktest]$ rmdir test
[user@host linktest]$ file *slash
noslash: broken symbolic link to `test'
slash: broken symbolic link to `test/'
[user@host linktest]$ touch test
[user@host linktest]$ file *slash
noslash: symbolic link to `test'
slash: broken symbolic link to `test/'
[user@host linktest]$

スラッシュバージョンは、ターゲットがファイルに置き換えられると中断されます。

おすすめ記事