我有一個具有chmod 000
權限的資料夾,裡面有很多不同的東西,我進入的方式是透過bash
運行.sudo
sudo bash
為什麼我做不到&&
?我想cd
使用這樣的一個命令進入目錄:
sudo bash && cd desktop
當我運行這個時,我仍然在~
預設目錄中。
我必須運行這個
sudo bash
cd desktop
另外,桌面不是資料夾,它是桌面的子資料夾,但這並不重要。無論如何都是一樣的。
答案1
之後的部分&&
在目前 shell 中執行,它不是傳遞給bash
您執行的某些參數sudo
。
您可能會想嘗試
sudo bash -c 'cd desktop'
但這不起作用,因為它bash
在 後退出cd desktop
。
你可以試試:
sudo sh -c 'cd desktop && exec bash'
desktop
它「有效」(即將您置於Bash shell 中 uid=0 的目錄中)。我寧願發出兩個單獨的命令,也不願發出一個命令。
答案2
它確實有效,只是不是你所期望的那樣。&&
等待命令完成。如果此時的結果為true
,則執行下一指令。因此,如果您輸入bash && cd desktop
,您將首先看到一個 bash shell。如果您輸入exit
,您將回到之前所在的 shell 中,並且然後該目錄將變更為桌面資料夾。
就我所描述的功能而言,sudo 無關緊要。您的 sudo 用例可能不是最佳實踐,您應該考慮其他解決方案。