为什么 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

当然,最简单的方法就是尝试看看。当没有给出第二个参数时,ln将在当前目录中创建一个与原始目录同名的链接:

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

这也解释在man ln

在第二种形式中,在当前目录中创建指向 TARGET 的链接。

“第二种形式”是指:

ln [选项]...目标(第二种形式)

相关内容