cd到上一个目录,不回显目录名称


9

这个答案给了我cd -简化到Bash上一个目录的捷径。它确实有一个主要问题:它打印出要更改的目录,浪费了我的屏幕空间,因为该目录随后在下一行的提示中重复出现。

我知道我可以做cd $OLDPWD,在该答案中也提到了,cd - >/dev/null但这要打字得多。

bash手册页中说:

...或-是第一个参数,并且目录更改成功后,新工作目录的绝对路径名将写入标准输出。

我怎样才能-不成为第一个论点?通过使用任何cd可选参数?还有其他抑制回波或最小化键入的方法,而无需在我使用的每台计算机上定义函数/别名?


这里的问题几乎相同……
don_crissti 2015年

Answers:


12

cd仅考虑第一个参数,而忽略所有其他参数。没有一个选项会影响先前路径名的回显(也许已记录的文件-@确实具有这种效果,但这在我的系统上是无效的选项)。

如果您不想使用别名/函数,那么输入/输入cd -或重定向到时可能会给您更少的字符/dev/null,我的建议是开始使用特殊的波浪号扩展bash

cd ~-

bash手册页:

如果波浪号前缀为“〜-”,则替换外壳变量OLDPWD的值(如果已设置)。

这似乎是另一个bash产生特殊意义的领域。Tilde扩展通常在$ DIRSTACK上运行,由pushdpopd和操作dirs,也可以在其他命令(cp ~-/somefile .)中使用,如果使用过pushd,则可以使用~N(其中N是向后推的多个级别)来这些目录(用于cd或其他命令)。


顺便说一句,如果您有多台计算机上的帐户,并且假设您使用ssh从一处登录,则应考虑将其添加到~/.bashrc

if [ -f ~/.bash_common ]; then
    . ~/.bash_common
fi

然后在您的工作计算机上使用脚本scp来“推送” bash_common到每台计算机。这样,您可以以最小的开销在多台计算机上添加和共享通用功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.