保存Bash注销上的最后一个工作目录

Ver*_*gen 11 bash shell

在bash中执行"退出"时是否可以保存最后一个工作目录.因此,下次登录时,它将位于您上次注销时的目录中.

Fri*_*ner 19

将〜./.bash_logout中的最后一个工作目录保存到隐藏文件中:

pwd > ~/.lastdirectory
Run Code Online (Sandbox Code Playgroud)

用〜/ .bashrc中的这个文件读取

[ -s ~/.lastdirectory ] && cd `cat ~/.lastdirectory`
Run Code Online (Sandbox Code Playgroud)

  • 那应该是 ~/.bash_logout (没有 . 在 ~ 和 / 之间)而不是 ~./.bash_logout ? (4认同)

lhu*_*ath 9

把它放在你的~/.bashrc(可能在最后):

cd "$(<~/.storepwd)"
Run Code Online (Sandbox Code Playgroud)

然后您可以选择以下内容:

将其放入~/.bash_logout(不记得交互式非登录shell的目录):

printf %s "$PWD" > ~/.storepwd
Run Code Online (Sandbox Code Playgroud)

或者使用trapon EXIT,把它放在你的~/.bashrc(陷阱可以轻易/意外地覆盖):

trap 'printf %s "$PWD" > ~/.storepwd' EXIT
Run Code Online (Sandbox Code Playgroud)

或者使用PROMPT_COMMAND,把这个~/.bashrc(可能是最可靠的方式):

PROMPT_COMMAND+='; printf %s "$PWD" > ~/.storepwd'
Run Code Online (Sandbox Code Playgroud)

还要确保您的~/.profile~/.bash_profile来源~/.bashrc,否则在登录shell启动时将无法恢复路径.

看到 http://mywiki.wooledge.org/DotFiles,了解有关如何使用dotfiles的信息.