我在我的主目录中创建了一个名为.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文件位于我的主目录中。
答案 0 :(得分:1)
cd $(cat ~/.curdir.txt)
。您需要cat
才能阅读内容。只有$(~/.curdir.txt)
将尝试执行该文件,如果它是可执行的,否则不执行任何操作。
除此之外,您可能希望查看pushd
和popd
目录堆栈以及如何使用它们。它们对于跳转系统非常有用。
答案 1 :(得分:0)
您可以将文件的内容转换为变量
var="$(cat file)"
但是为了您的需要,请检查pushd
popd
,它可以满足您的需求。另外cd -
返回上一个目录。