Symlink

為什麼 ln -s 接受單個參數

  • August 5, 2015
> 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.

這不是一個錯誤。當您要將文件連結到相同的基本名稱但在不同的目錄中時,案例是:

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

確實,當您使用位於同一目錄中的文件名執行此操作時,它會創建一個指向自身的連結,但這並沒有什麼好處!

無論您使用符號連結還是硬連結,這都有效。

當然,找出答案的最簡單方法是嘗試並查看。當沒有給出第二個參數時,ln將在目前目錄中創建一個與原始目錄同名的連結:

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

這也在man ln

在第二種形式中,在目前目錄中創建指向 TARGET 的連結。

“第二種形式”是指:

ln

$$ OPTION $$…目標(第二形式)

引用自:https://unix.stackexchange.com/questions/219038