Когда я запускаю cygwin, мой ~ dir совпадает с $ HOME. Через некоторое время ~ dir изменится, а $ HOME останется прежним. Я озадачен этим, не уверен, где искать. Может быть, кто-то испытал это, или есть какая-то подсказка, что происходит? Когда я начинаю:

winuser@mybox ~
$ echo $HOME
/cygdrive/c/cyguser

winuser@mybox ~
$ echo ~
/cygdrive/c/cyguser

Позже ~ меняется на /cygdrive /c /winuser, который не существует. Когда я перезагружаю Cygwin, все возвращается к нормальной жизни. Что может быть причиной этого?

2 ответа2

2

Ваш файл /etc/passwd неверен; он будет перечислять ваш домашний каталог как /cygdrive/c/winuser . Исправьте это, отредактировав этот файл и исправив поле.

У меня были похожие проблемы; Cygwin bash не читает ваш домашний каталог из файла passwd при запуске, поэтому ~ правильно, но некоторые вещи (мне так и не удалось выяснить, что именно) приведут к его перезагрузке и сбросу из этого файла, выбрав Неверное значение. Я думаю, что это побочный эффект от слегка унылого обновления пакета, но я не уверен.

1

Если перед установкой cygwin вы создали переменную HOME в качестве переменной среды Windows, вы можете указать ее в любом месте на ПК с Windows (каталог должен существовать).

Затем, когда вы устанавливаете cygwin, он учитывает это и создает правильный файл /etc /passwd для вас.

Я использую субстрат для создания псевдонима диска для моего каталога "Мои документы" в Windows:

H:\ => C:\Users\WINUSERNAME\Documents

тогда в винде ставлю

HOME=H:\

Это тогда становится

/cygdrive/h

в Cygwin - просто, без пробелов и т. д., что может быть неудобно.

Преимущество в том, что мой домашний каталог в cygwin идентичен "Моим документам".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .