Рекурсия используется в вещах как деревья BSP для обнаружения коллизий в разработке игр (и другие подобные области).
Вы можете создать новую ссылку с другим именем, а затем переместить ее, чтобы заменить старую ссылку.
ln -s /location/to/link linkname
Позже
ln -s /location/to/link2 newlink
mv newlink linkname
Если новая ссылка
и имя ссылки
находятся на одном физическом устройстве, mv
должен быть атомарным.
Нет. Системный вызов символьная ссылка
вернет EEXIST
, если новый путь уже существует. Вы можете ссылаться только с нового узла в файловой системе. Какие здесь требования? Если вас беспокоит гонка из-за неатомарности вызовов unlink / symlink, вы можете немного переосмыслить архитектуру, чтобы обеспечить синхронизацию в другом месте. Подобные вещи вносят некоторые пугающие ошибки безопасности.