Вот очень хорошая статья, объясняя использование застежки-молнии для менеджера окон мозаичного размещения в Haskell. Статья Wikipedia не является хорошей ссылкой.
Короче говоря, застежка-молния является указателем или дескриптором к конкретному узлу в структуре списка или дереве. Застежка-молния уступает естественному дорогу из взятия древовидной структуры и обработки его, как будто дерево было "взято" сфокусированным узлом - в действительности, Вы получаете второе дерево, не требуя дополнительных копий, сделанных из исходного дерева или влияя на других пользователей дерева.
пример, данный шоу, как Вам отсортировало окна первоначально по местоположение на экране, и затем к образцовому фокусу, Вы используете застежку-молнию, указал на окно фокуса. Вы получаете хороший набор O (1) операции те, которые вставляют и удаляют, не имея необходимость к особому случаю окно фокуса или пишут дополнительный код.
Начиная с Cygwin 1.7.34 , рекомендуемый способ сделать это - добавить пользовательский параметр db_home
в /etc/nsswitch.conf
. Обычно при этом желают сделать ваш домашний каталог Cygwin равным каталогу вашего профиля пользователя Windows. Этот параметр сделает следующее:
db_home: windows
Или, что эквивалентно:
db_home: /%H
Вам нужно использовать последнюю форму, если вы хотите внести какие-то изменения в эту схему, например, чтобы разделить ваши домашние файлы Cygwin в подкаталог каталога каталог вашего профиля пользователя Windows:
db_home: /%H/cygwin
Есть несколько других альтернативных схем для параметра windows
плюс несколько других токенов %
, которые вы можете использовать вместо % H
или в дополнение к этому. См. nsswitch . conf
описание синтаксиса в Руководстве пользователя Cygwin для подробностей.
Если вы установили Cygwin до версии 1.7.34 или использовали его mkpasswd
утилиту так что у вас есть файл / etc / passwd
, вы можете изменить свой домашний каталог Cygwin, отредактировав запись вашего пользователя в этом файле. Ваш домашний каталог является предпоследним элементом в строке вашего пользователя в / etc / passwd
.¹
Каким бы способом вы это ни сделали, это приводит к тому, что переменная среды HOME
будет устанавливается во время запуска оболочки .²
См. этот элемент часто задаваемых вопросов для получения дополнительной информации по теме.
Сноски:
Рассмотрите возможность перемещения / etc / passwd
и / etc / group
, чтобы использовать новый механизм на основе SAM / AD .
Хотя можно просто установить % HOME%
через панель управления, это официально не рекомендуется . Он не только бесцеремонно переопределяет вышеуказанные механизмы, но и не всегда работает, например, при запуске сценариев оболочки через cron
.
Измените переменную среды HOME.
в XP щелкните правой кнопкой мыши Мой компьютер >> Свойства >> Дополнительно >> Переменные среды >> Пользовательские переменные для >> [выберите переменную HOME] >> редактировать
Я случайно использую cwRsync (Cygwin + Rsync для Windows), где cygwin поставляется в комплекте, и я не смог найти /etc/passwd.
И он продолжал говорить
Could not create directory '/home/username/.ssh'.
...
Failed to add the host to the list of known hosts (/home/username/.ssh/known_hosts).
Поэтому я написал пакетный файл, который изменил переменную HOME перед запуском rsync. Что-то вроде:
set HOME=.
rsync /path1 user@host:/path2
И папка viola! .ssh появилась в текущем рабочем редже и rsync перестал раздражать отпечатками RSA.
Это быстрое исправление, но позже вы должны изменить HOME на более безопасное место.