正如在这个很好的答案中所提到的,POSIX 系统cd除了内置的 shell 之外还有一个外部二进制文件。在 OS X 10.8 上,它是/usr/bin/cd. 您不能像内置函数那样使用它,cd因为它在更改自己的工作目录后立即退出。它的目的是什么?
bash 命令
cd -
Run Code Online (Sandbox Code Playgroud)
打印以前使用的目录并对其进行更改。
另一方面,Bash 命令
cd ~-
Run Code Online (Sandbox Code Playgroud)
直接更改到以前使用的目录,不回显任何内容。
这是唯一的区别吗?每个命令的用例是什么?
我经常cd -回到我原来的地方。如何在 bash 中多次执行此操作?或者 zsh 或其他一些工具会支持这个吗?
我要么在 20 年前的某个地方拥有过这个,要么我梦想过它。
基本上:
如果如果输入blobblob我得到
blobblob: command not found
很公平。
我希望这样,当我的 shell 收到这些错误时 - 命令未找到 - 它会检查是否存在具有该名称('blobblob')的目录,如果存在,则是cd该目录。
我敢肯定,不这样做或谨慎行事是有原因的。
我只是认为它会非常整洁,我想通过找到某个地方(比如这里!)来尝试一下。
我不知道如何进行这可能意味着的 shell 编程。
我发现我经常做以下事情:
%> cd bla/bla
%> ls
Run Code Online (Sandbox Code Playgroud)
我希望每当我cd进入目录时它会自动执行ls.
我摆弄.bashrc了一段时间,但不知道如何让它发生。
有没有办法在不同的目录中执行命令而不必cd执行它?我知道,我可以简单地cd在和cd了,但我只是感兴趣免收额外步骤的可能性:)
cd -可以移动到上次访问的目录。除了上一篇之外,我们还能参观更多的历史吗?
为什么cd ..在根文件夹中键入,没有警告或失败并出现错误?
我希望:
/$ cd ..
-bash: cd: ..: No such file or directory
Run Code Online (Sandbox Code Playgroud)
相反,我留在了/。当然,这是因为..确实存在于 中/,并且很简单/,就像.。我只是想知道为什么会这样。
cd - 可以在当前目录和上一个目录之间切换。
似乎我以前见过-用作其他命令的参数,但我不记得 if-与cd.
我发现这-不适用于ls.
是- 只用cd吗?
进入目录时执行脚本的最佳方式是什么?
当我进入一个新目录时,我希望 bash 像 RVM 一样执行 projectSettings.bash 脚本。
cd-command ×10
bash ×7
directory ×3
command-line ×2
pushd ×2
shell ×2
arguments ×1
command ×1
linux ×1
options ×1
posix ×1
shell-script ×1
zsh ×1