在终端中,当使用cd
命令更改目录时,如何定义要转到先前目录的键?
例如,我在/opt/soft/bin
和我cd
进/etc/squid3
,我想回去的第一个目录。
在终端中,当使用cd
命令更改目录时,如何定义要转到先前目录的键?
例如,我在/opt/soft/bin
和我cd
进/etc/squid3
,我想回去的第一个目录。
Answers:
您可以使用
cd -
或者你可以使用
cd $OLDPWD
cd -
。例如,当您键入内容时,cd /usr/local
您知道自己在/usr/loal
,但是当您键入cd -
内容时,并不总是记住您来自哪个目录。因此,您无需输入cd -; pwd
。但这全是猜测。
alias -- -='cd -'
然后使用-
(1个字符)而不是cd -
(4个字符)。更快:D
cd -
两次。难道cd /; cd /usr; cd -; cd -
你应该在/usr
。但也许我想念您的问题。
在直接答案的意义上,其他答案肯定是完整的。 cd -
和cd $OLDPWD
肯定这样做的主要选择。但是,我经常发现,使用pushd
并popd
更好地进入工作流程。
简而言之,如果您出于最终目的返回到起始位置而进入目录,请使用pushd
/ popd
。
一个例子很容易说明主要区别。
$ cd dir1
$ pushd dir2
此时,您的目录堆栈为dir2, dir1
。pushd
不带参数运行将使您dir1
现在回到堆栈dir1, dir2
。 popd
会做同样的事情,但是会留下一个空的目录栈。这与您使用cd -
工作流的方式没有太大不同。
但是,现在您可以多次更改目录并返回dir1
。例如,
$ cd dir1
$ pushd dir2
$ cd dir3
如果此时运行popd
,将返回到dir1
。
pushd
在popd
-ing时重复使用并返回到上一个文件夹。
dirs -v
,但对我而言,现实情况是,通常情况下,这只是我真正使用的全部。(或者,更糟的是,在尝试push +2
或类似的尝试时我犯了一个错误)此外,我还认为要让别人尝试工作流程的步骤很简单。:)
cd
在不弹出的情况下到达堆栈顶部?
您应该使用:
cd ~-
它的作用与cd -
(根据当前接受的答案)相同,但没有目录的讨厌回声,并且比cd "$OLDPWD"
或易于键入cd - > /dev/null
。
alias -- -='cd "$OLDPWD"'
使用-
(1个字符)而不是cd ~-
(5个字符)。:)
您可以通过编辑“〜/ .bashrc”文件并为该命令添加别名来为“ cd-”“定义键”。例如,您可以添加“ cdc”使其成为“ cd-”,这将通过添加以下内容为您提供一种访问上一个目录的更短方法:
alias cdc='cd -'
这样,您只需键入“ cdc”,它将把您放在最后一个工作目录中。
bind '"\e[24~":"\C-k \C-ucd -\n"'
或更优选地,将其移动到inputrc
答案中提到的文件中)。