Я запустил Ubuntu Bash на Windows, который был поставлен с Anniversary Update 1607. Этот bash использует файл .bashrc
расположенный по адресу /home/phil
который является домашним каталогом пользователя Unix, а не пользователя Windows (это будет /mnt/c/Users/Philipp
). В этом файле среди прочего есть следующий кусок кода:
if [ -f .bash_aliases ]; then
. .bash_aliases
fi
Поскольку у меня уже есть файл псевдонимов в моем домашнем каталоге Windows, я заменил этот фрагмент на:
if [ -f /mnt/c/Users/Philipp/.aliases_win ]; then
. /mnt/c/Users/Philipp/.aliases_win
fi
Который при перезапуске bash или sourcing напрямую с source /mnt/c/Users/Philipp/.aliases_win
дает:
: command not found
: command not found
: command not found
: command not found
: command not found
: command not found
: command not found
Поэтому я удалил столько псевдонимов, пока эти сообщения об ошибках не исчезли, оставив в файле только эти псевдонимы:
(Для справки полный файл выглядит следующим образом: https://github.com/kleinfreund/dotfiles/blob/master/win/bash/.aliases)
# Quickly navigate up the *great hollow*
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
Но при использовании:
phil@RAUMSTATION:~$ ..
: File or directory not found
Однако, когда я делаю alias ..='cd ..'
непосредственно из Bash, это работает нормально.
Я сейчас совершенно сбит с толку. Что я делаю неправильно? Файл псевдонимов прекрасно работает на моей установке Ubuntu, а также с такими вещами, как Git Bash.
Изменить: Помещение моих псевдонимов в /home/phil/.bashrc
работает, не так много, когда источник файла из домашнего каталога моих пользователей Windows.