我在我的机器上安装了 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改变目录?
答案 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
禁用它当然解决了这个问题。