Неожиданное поведение cp -a на символьных ссылках

У вас есть закрытый ключ, добавленный в gnome-keyring или что-то еще, что выдает подсказку графического интерфейса пользователя для ключевой фразы. Вы не можете избавиться от этого в этой настройке.

Но есть возможность использовать обычный ssh-agent (удалив gnome-keyring или запустив ssh-agent после этого) и AddKeysToAgent yes в вашем ssh_config , что приведет к ожидаемому вами поведению - после загрузки у агента не будет никаких ключей, и они будут автоматически добавлены после первого использования.

Подобные случаи объясняются в связанных вопросах:

2
26.01.2017, 05:48
1 ответ

Когда вы выполните cp -a 1 /. 2 сначала выполняется b , но поскольку b -> a уже существует, содержимое b записывается в a . Затем рассматривается a-> b , что приводит к перезаписи a символической ссылкой a-> b . Если вы запустите cp -a 1 /. 2 снова, вы должны получить «Слишком много уровней символических ссылок» .

Итак, да, cp следует по символическим ссылкам в месте назначения. Вы можете попробовать - remove-destination , который правильно решает проблему для вашего MWE. Однако, если у вас есть символические ссылки в качестве компонентов каталога в месте назначения, они не будут удалены с помощью - remove-destination .

Настоящий вопрос - «зачем делать что-то подобное?» Я всегда использую только cp -a с пустым каталогом в качестве цели. Кроме того, файловые системы, поддерживающие - reflink = always , также имеют более элегантные способы клонирования дерева каталогов в качестве резервной копии.

1
27.01.2020, 22:19

Теги

Похожие вопросы