Bash
sudo 誤解別名
在我
~/.bashrc
的alias link='ln -sf'
集合中,它在我的 shell 會話期間相應地工作。但是,對於我需要
sudo
在命令開頭使用的根保護位置,它會引發以下錯誤:link: cannot create link '<$2>' to '<$1>': Operation not permitted
到底發生了什麼?我怎麼能繞過它?
sudo
是一個不知道您的別名的外部命令。只有你的 shell 知道你的別名,而sudo
不是它的一部分。在這種情況下,我猜想
sudo
嘗試執行二進製文件,這在我的 Linux 系統上是一個簡單的命令,它總是通過呼叫系統呼叫/usr/bin/link
來創建硬連結:link(2)
$ link --help Usage: link FILE1 FILE2 or: link OPTION Call the link function to create a link named FILE2 to an existing FILE1. --help display this help and exit --version output version information and exit GNU coreutils online help: <https://www.gnu.org/software/coreutils/> Full documentation at: <https://www.gnu.org/software/coreutils/link> or available locally via: info '(coreutils) link invocation'