为什么“sudo bash && cd desktop”不进入桌面文件夹?

Dis*_*ame 6 shell bash sudo cd-command

我有一个文件夹中chmod 000有很多不同的东西,它的权限,我得到的方式是开始bashsudo运行sudo bash

为什么我做不到&&?我想cd用这样的一个命令进入目录:

sudo bash && cd desktop
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我仍然在~默认目录中。

我必须运行它

sudo bash
cd desktop
Run Code Online (Sandbox Code Playgroud)

另外,桌面不是文件夹,它是桌面的子文件夹,但没关系。反正都是一样的。

Ant*_*hon 18

后面的部分&&是在当前 shell 中执行的,它不是交给bash你运行的参数sudo

你可能想尝试

sudo bash -c 'cd desktop'
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为它bashcd desktop.

你可以试试:

sudo sh -c 'cd desktop && exec bash'
Run Code Online (Sandbox Code Playgroud)

它“有效”(即,将您置于desktopuid=0 的 Bash shell中的目录中)。我宁愿发出两个单独的命令,而不是那个一个班轮。