将pwd存储在可用于在启动时返回到该路径的文件中

时间:2016-04-13 14:16:17

标签: bash shell

我在我的主目录中创建了一个名为.curdir.txt的文件,并在我的.bashrc中编写了一个函数,每次发出cd命令时都会用pwd填充该文件。因此该文件始终包含我进入的最后一个目录。那部分正在发挥作用。

我想在复制会话时使用此文件返回其包含的任何目录。到目前为止,我没有任何运气可以搞清楚。

这是工作部分(我添加到我的函数中,始终显示我的密码):

function __cd
{
  cd $1;
  PS1="`uname -n`::`pwd`> ";
  CURDIR=`pwd`
  echo ${CURDIR} > ~/.curdir.txt
}

alias cd=__cd

每次我更改目录时,新路径都会存储在文本文件中。我尝试了许多方法来引用该文件,并在启动重复会话时返回到该路径。我想如果我能得到它回应我几乎已经完成了,但我甚至无法得到它。目前它看起来像这样:

echo $(~/.curdir.txt)
cd $(~/.curdir.txt)

我试过这个。我已经将文件的内容推送到变量并使用它。我只是无法得到它。有什么建议吗?

我应该用当前设置添加输出。

SIMONEY@rhvmap01s password:
Send automatic password
Last login: Wed Apr 13 09:08:53 2016 from SIMONEY.int.myco.org
Kickstarted on 2014-10-08
/home/SIMONEY/.curdir.txt: line 1: /home/SIMONEY: is a directory

/home/SIMONEY/.curdir.txt: line 1: /home/SIMONEY: is a directory

就像我说的那样,我将所有这些放入我的.bashrc中,而txt文件位于我的主目录中。

2 个答案:

答案 0 :(得分:1)

cd $(cat ~/.curdir.txt)。您需要cat才能阅读内容。只有$(~/.curdir.txt)将尝试执行该文件,如果它是可执行的,否则不执行任何操作。

除此之外,您可能希望查看pushdpopd目录堆栈以及如何使用它们。它们对于跳转系统非常有用。

答案 1 :(得分:0)

您可以将文件的内容转换为变量

var="$(cat file)"

但是为了您的需要,请检查pushd popd,它可以满足您的需求。另外cd -返回上一个目录。