我知道';' 相当于命令行中的“输入”。但是我有这种情况。
我的目录具有以下配置:目录 A 包含目录 B 和 C。当前在目录 B 中。我执行以下操作:
光盘../
当然,这会把我带到 A。然后我做:
CDC
这把我带到了C。
但是,如果我链接这两个命令,再次从 B 开始:
(cd ../ ; cd C)
我还留在B。怎么了?为什么不带我去C?
执行时启动的进程( cd ../; cd C)
有自己的环境,因此也有自己的当前工作目录。这在下面可以证明:
dogface@computer ~/A/B
$ ( cd .. ; pwd ; cd C; pwd )
/home/dogface/A
/home/dogface/A/C
dogface@computer ~/A/B
$ pwd
/home/dogface/A/B
现在尝试不使用 '(' 和 ')' ...
dogface@computer ~/A/B
$ cd .. ; cd C
dogface@computer ~/A/C
$ pwd
/home/dogface/A/C
尝试这样做:
cd .. && cd C
或者,如果您删除括号,您的原始命令应该可以工作:
cd ../ ; cd C
括号会导致命令在子 shell 中执行,这就是您看不到目录更改的原因。有关更多详细信息,请参见此处。