為什麼打字sudo cd 無論如何不會改變目錄嗎?
答案1
cd
是一個 shell 內建的。sudo
僅適用於可執行檔。您可以這樣做sudo sh -c 'cd dirname'
,但是一旦 shell 退出,您就會回到開始時的目錄。如果您說出您想要實現的目標是什麼,那麼我可以幫助您找到實現該目標的方法。
答案2
相反,請嘗試使用sudo -s
啟動 root shell,然後簡單地cd
進入目錄。
當您以 root 身分完成操作後,請按CtrlD或鍵入exit
。
正如 Arjan 在下面的評論中所暗示的那樣,重要的是要注意,作為 root,一個人可以輕鬆損壞重要的系統組件。小心使用!
答案3
你可以簡單地su
成為 root,然後cd
你想要的一切......我知道答案已經被接受,但如果一個答案不在 sudoers 列表中,那麼這是唯一的選擇。
答案4
有兩種方法會“不起作用”,具體取決於您的作業系統:
如果您的作業系統遵循 POSIX,請執行
sudo cd
將導致外部命令「cd」(通常位於/usr/bin/cd
)以 root 使用者身分在分叉進程中執行。過程成功更改目錄。過程完成後,您將返回常規 shell,該 shell 仍在其啟動的目錄中。因此
sudo cd
運行時不會出現錯誤,但不會更改當前 shell 的目前工作目錄。(參考:這個答案)
否則運行
sudo cd
會導致以下情況。您的電腦將尋找您的路徑,嘗試尋找名為「cd」的可執行檔。它不會找到一個。 (只有shell內建指令“cd”存在,並且不是可執行檔)。因此,你會得到一個錯誤。 (在 Ubuntu 上,我收到錯誤訊息sudo: cd: command not found
。)所以
sudo cd
運行時出錯。