Nif*_*fle 102
有pushd和popd
Bash 将保留您访问的目录的历史记录,您只需要询问即可。Bash 将历史记录存储在堆栈中,并使用 pushd 和 popd 命令来管理堆栈。
例子:
$ pwd; pushd /tmp; pwd; popd; pwd
/home/me
/tmp ~
/tmp
~
/home/me
Run Code Online (Sandbox Code Playgroud)
Ign*_*ams 35
调用bash启动一个新的子shell,它有自己的输入;在退出之前,其他命令都不会运行。围绕要使用括号运行的命令也将启动一个新的子 shell,但它将运行其中的命令。
( cd dir ; ./dostuff )
Run Code Online (Sandbox Code Playgroud)
tuo*_*alo 14
如果您不需要多级目录历史记录,您还可以执行以下操作:
cd foo
# do your stuff in foo
cd -
Run Code Online (Sandbox Code Playgroud)
与pushd/相比popd,它的缺点是如果cd foo失败,您最终会进入错误的目录cd -。
(可能cd -在脚本之外更方便。“让我们回到我刚才所在的地方。”)
小智 5
我使用别名来跟踪我的目录更改,以便在某个地方使用 'cd',我可以回到我使用 'cd.' 的地方,或者使用 'cd..' 返回两个;等等;
alias pushdd="pushd \$PWD > /dev/null"
alias cd='pushdd;cd'
alias ssh='ssh -A'
alias soc='source ~/.bashrc'
#below to go back to a previous directory (or more)
alias popdd='popd >/dev/null'
alias cd.='popdd'
alias cd..='popdd;popdd'
alias cd...='popdd;popdd;popdd'
alias cd....='popdd;popdd;popdd;popdd'
#below to remove directories from the stack only (do not 'cd' anywhere)
alias .cd='popd -n +0'
alias ..cd='popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
73693 次 |
| 最近记录: |