ln -s -T:: что конкретно делает переключатель "-T"?

Я видел, как используется переключатель -T, например, здесь. Глядя на справочную страницу, она просто гласит: "рассматривать LINK_NAME как обычный файл". Может ли кто-нибудь пролить свет на разницу между использованием и отсутствием ключа -T?

1 ответ

Решение

См. Главу "Целевой каталог" в руководстве по GNU Coreutils:

-T
--no-target-directory

Не обрабатывайте последний операнд специально, если это каталог или символическая ссылка на каталог. Это может помочь избежать условий гонки в программах, которые работают в общей области. Например, когда команда mv /tmp/source /tmp/dest успеха, нет никаких гарантий, что /tmp/source был переименован в /tmp/dest: это могло быть переименовано в /tmp/dest/source вместо этого, если какой-то другой процесс создан /tmp/dest в качестве каталога. Однако если mv -T /tmp/source /tmp/dest не вызывает сомнений, что /tmp/source был переименован в /tmp/dest,

В противоположной ситуации, когда вы хотите, чтобы последний операнд рассматривался как каталог, а в противном случае требуется диагностика, вы можете использовать --target-directory (-t) вариант.

Обратите внимание, что проект GNU не рассматривает справочные страницы в качестве основной формы документации; вы всегда должны смотреть на соответствующие info страница (примечание об этом помещено в конце каждой страницы руководства для программы, разработанной в рамках проекта GNU).

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