bash在启动时更改目录

时间:2017-02-12 15:21:17

标签: linux bash shell cygwin windows-subsystem-for-linux

我在我的机器上安装了 Bash on Windows上的Ubuntu Cygwin bash ,两者都设置为具有相同的~文件夹(通过{分别为{1}}和/mnt/c/source

当我从任何目录通过/cygdrive/c/source(或只是bash --login -i)启动Ubuntu的bash提示时,我会在该目录中运行提示符;但是,当我通过相同的命令启动Cygwin的bash时,将覆盖当前目录,并且提示始终为bash --login。有关简单示例,请参阅屏幕截图。

我的用户目录~.bashrc当然是相同的,因为两者都使用相同的用户目录。我查看了Cygwin的.bash_profile,似乎没有什么可以改变我当前的目录,/etc/bash.bashrc中没有任何其他相关文件。

什么可能导致Cygwin的bash改变目录?

ubuntu bash screenshot

cygwin bash screenshot

2 个答案:

答案 0 :(得分:0)

你只需在cygwin的〜/ .bashrc底部添加一个命令“cd / dir_you_want”

答案 1 :(得分:0)

我已经弄清楚了,所以如果有人遇到同样的问题:

我忽略了一个文件,因为我不知道它存在,/etc/profile。在Cygwin中,默认情况下它包含以下部分:

# Make sure we start in home unless invoked by CHERE
if [ ! -z "${CHERE_INVOKING}" ]; then
  unset CHERE_INVOKING
else
  cd "${HOME}" || echo "WARNING: Failed attempt to cd into ${HOME}!"
fi

禁用它当然解决了这个问题。