為什麼“sudo cd”不起作用?

為什麼“sudo cd”不起作用?

為什麼打字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

有兩種方法會“不起作用”,具體取決於您的作業系統:

  1. 如果您的作業系統遵循 POSIX,請執行sudo cd將導致外部命令「cd」(通常位於/usr/bin/cd)以 root 使用者身分在分叉進程中執行。過程成功更改目錄。過程完成後,您將返回常規 shell,該 shell 仍在其啟動的目錄中。

    因此sudo cd運行時不會出現錯誤,但不會更改當前 shell 的目前工作目錄。

    (參考:這個答案

  2. 否則運行sudo cd會導致以下情況。您的電腦將尋找您的路徑,嘗試尋找名為「cd」的可執行檔。它不會找到一個。 (只有shell內建指令“cd”存在,並且不是可執行檔)。因此,你會得到一個錯誤。 (在 Ubuntu 上,我收到錯誤訊息sudo: cd: command not found。)

    所以sudo cd運行時出錯。

相關內容