Почему я не могу записать CD в псевдонимы Bash на Cygwin?
Я использую bash
через mintty
терминал на Cygwin, и я создал два псевдонима в моем .bashrc
файл в моем домашнем каталоге Cygwin.
alias croot="C:/cygwin64"
alias desktop="B:/Users/User/Desktop"
Когда я вхожу croot
или же desktop
в терминал вроде нормально работает
B:/ Пользователи / Пользователь / Рабочий стол: это каталог
Тем не менее, используя эти псевдонимы с чем-то вроде cd croot
возвращает ошибку:
-bash: cd: croot: нет такого файла или каталога
Кто-нибудь знает, что здесь происходит?
1 ответ
Псевдоним не работает так, как вы думаете. Сделай это:
alias croot='cd C:/cygwin64'
croot
Или же:
croot=C:/cygwin64
cd "$croot"
Результат:
$ pwd
/
Есть способ заставить эту работу работать. Но я бы не рекомендовал это. Используйте ответ Стивенса вместо этого.
$ help псевдоним
псевдоним: псевдоним [-p] [имя [= значение] ... ] Определить или отобразить псевдонимы.
Без аргументов "alias" выводит список псевдонимов в многоразовой форме "alias NAME=VALUE" на стандартный вывод.
В противном случае для каждого ИМЯ, чье ЗНАЧЕНИЕ задано, определяется псевдоним. Конечный пробел в VALUE заставляет следующее слово проверяться на предмет замены псевдонима при раскрытии псевдонима.
Параметры: -p распечатать все определенные псевдонимы в повторно используемом формате
Статус выхода: псевдоним возвращает истину, если не указано ИМЯ, для которого не был определен псевдоним.
$ alias croot="C:/cygwin64"
$ alias desktop="B:/Users/User/Desktop"
$ alias cd='builtin cd ' # Notice the trailing space.
$ cd croot; pwd
/
Обратите внимание, что только слово рядом с cd
будет рассматриваться для alias
расширение. Следовательноcd -P croot
не будет работать.