我正在使用Cygwin
并希望使用diff params运行它,这样我就可以在Windows启动时立即更改dir。
例如
bash --login -i ; cd /
或
bash --login -i ; cd /tmp
但cd
不起作用,如何将更改目录传递给
bash --login -i
仅供参考我无法将cd
放入.bash,必须将其传入
试了这个没有运气
bash --login -i -s cd /tmp;
答案 0 :(得分:2)
一个hack是使用-c
来更改目录,然后立即启动一个新shell来代替第一个。工作目录是继承的。请注意,任何 shell(支持exec
)都可用于启动新进程;更改工作目录后,即可启动bash
的交互式登录实例。
bash -c "cd /tmp; exec bash --login -i"
答案 1 :(得分:1)
我使用.bashrc
和.bash_logout
来恢复之前的位置。在.bash_logout
中,我将当前目录存储在文件中:
if [ -d ~/.recent-locations ]; then
pwd > ~/.recent-locations/locus-$RANDOM
fi
并在.bashrc
中消耗存储的位置:
if [ -d .recent-locations ]; then
for x in $(ls .recent-locations); do
dstdir=$(cat .recent-locations/$x)
rm .recent-locations/$x
cd $dstdir
break
done
fi
为此,您需要使用Ctrl-D
或logout
明确注销;另一方面,如果您不想记录您的位置,您只需通过窗口管理器关闭终端窗口。
答案 2 :(得分:0)
"$OLDPWD"
并且它会自动切换到我在Windows中的最后一个目录,然后分叉Cygin,
希望能帮助别人,
肖恩