我知道如何通过键入从终端更改目录
cd <directory>
Run Code Online (Sandbox Code Playgroud)
但这是场景。我正在使用终端来访问我的 git 存储库的文件夹。
鉴于上面的文件夹结构,我想切换,glenn-remdroid-repository
因为它是我的存储库。
cd glennRepositories
Run Code Online (Sandbox Code Playgroud)
在切换 glenn-remdroid-repository 之前,我错误地输入了命令
cd &
Run Code Online (Sandbox Code Playgroud)
而不是cd *
. 我用的cd *
是因为文件夹名对我来说很长,抱歉懒惰。
当我执行时cd &
,终端回复
[1] 7519
Run Code Online (Sandbox Code Playgroud)
当我执行时cd *
,现在发生了
[1]+ Done cd (wd: ~/glennRepositories)
(wd now: ~/glennRepositories/glenn-remdroid-repository)
Run Code Online (Sandbox Code Playgroud)
有没有人是什么cd &
意思及其输出?谷歌不知道我的问题:)
Mir*_*kár 21
通过&
在命令行的末尾写入,您正在指示您的 shell 获取命令管道(在本例中为单个命令)并在后台的子 shell 中运行它(而不是等待结果)。cd
是一个内置的 bash,但这在这里并不重要。它不会以任何方式影响您的“父”shell,因此您的工作目录不会改变。
[1] 7519
Run Code Online (Sandbox Code Playgroud)
这一行报告说有一个作业在后台运行,由数字 1 标识,进程 ID 是 7519。如果你运行例如vim
然后按Ctrl+Z暂停它,则会打印类似的东西。当进程完成时,shell 将不会报告,直到下一个处理周期(例如Return再次点击),然后它将打印更新列表作业完成。
有关更多详细信息,请阅读man bash
和 部分JOB CONTROL
。
供参考,这个问题为什么不起作用exit &
?有一些相似之处。