我有一个具有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 用例可能不是最佳实践,您应该考虑其他解决方案。