如何将bashrc配置为转到上一个会话工作目录



当使用ssh登录到linux系统时,默认情况下它会进入用户工作目录。例如root用户的/root。我想配置我的bashrc,这样如果我下次登录,它会把我带到根用户的上一个工作目录。

只要您使用单个用户,就可以添加这样的内容。

  1. 创建一个.bash_logout文件并将当前目录保存到已知文件:

    pwd >"$HOME/.last_directory"
    
  2. 然后,在.bashrc文件中,将该文件和cd读取到目录中。

    dir="$(<"$HOME/.last_directory")"
    [ -d "$dir" ] && cd "$dir"
    

需要注意的事项:

  1. 此解决方案应该适用于空间,但可能需要额外调整
  2. 这只适用于一个用户,即.bashrc.bash_logout的"所有者"。如果您希望这适用于多个用户(例如您自己和root),一种解决方案是在每个用户的.bashrc.bash_logout中创建类似的指令,但使它们使用独立于当前$HOME的通用.last_directory文件。另一种选择是使用系统范围的/etc/bash.bash_logout/etc/bas.bashrc(如l0b0所建议的)
  3. 使用信号突然关闭会话(=关闭终端而不是键入exitlogout或点击^D),或者在SSH的情况下断开网络连接,将导致.bash_logout而不是启动,这将不会保存目录

相关内容

最新更新