ln -sが単一引数を受け入れる理由

ln -sが単一引数を受け入れる理由
> cd /tmp
> ln -s foo
> ls -alhF /tmp
lrwxrwxrwx 1 user user    3 Jul 29 14:00 foo -> foo

これはバグですかln、それともファイル自体をシンボリックリンクするユースケースはありますか?

これはcoreutils 8.21-1ubuntu5.1

答え1

これは間違いではありません。このユースケースは、ファイルを同じデフォルト名ですが、別のディレクトリに接続したい場合に使用されます。

cd /tmp
ln -s /etc/passwd
ls -l passwd
lrwxrwxrwx 1 xxx xxx 11 Jul 29 09:10 passwd -> /etc/passwd

実際、同じディレクトリにあるファイル名でこれを行うと、それ自体へのリンクが生成されますが、これはあまり役に立ちません!

これはシンボリックリンクを使用するかハードリンクを使用するかに関係なく機能します。

答え2

もちろん、最も簡単な方法は自分で試してみることです。 2番目の引数が指定されていない場合、ln元のディレクトリと同じ名前のリンクが現在のディレクトリに作成されます。

$ ln -s /etc
$ ls -l
lrwxrwxrwx 1 terdon terdon         4 Jul 29 16:09 etc -> /etc

これの説明は次のとおりですman ln

2番目の形式では、TARGETへのリンクが現在のディレクトリに作成されます。

「第2の形態」は、以下を意味する。

ln [オプション]...target(2番目の形式)

関連情報