Почему я не могу записать 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 не будет работать.

Другие вопросы по тегам