我已经了解到';'相当于命令行中的“enter”。但我有这种情况。
我的目录具有以下配置:目录A包含目录B和C.当前在目录B中。我执行以下操作:
当然,cd ../
将我带到A.然后我做:
cd C
带我去C.
但是,如果我链接两个命令,再次从B开始:
(cd ../; cd C)
我还留在B.发生了什么事?为什么不把我带到C?
答案 0 :(得分:3)
尝试这样做:
cd .. && cd C
或者,如果删除括号,原始命令应该有效:
cd ../ ; cd C
括号会导致命令在子shell中执行,这就是您没有看到目录更改的原因。有关详细信息,请参阅here。
答案 1 :(得分:3)
执行( 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