Это является целью параметра ln's' -f: он удаляет существующие файлы назначения, если таковые имеются, перед созданием ссылки.
ln -sf /path/to/data/folder/month/date/hour/minute/file /path/to/recent/file
создаст символическую ссылку, /path/to/recent/fileуказывающую на /path/to/data/folder/month/date/hour/minute/file, заменяя любой существующий файл или символическую ссылку на файл, если это необходимо (и работает нормально, если там уже ничего не существует).
Если каталог или символическая ссылка на каталог уже существует с целевым именем, внутри него будет создана символическая ссылка (так что в итоге вы получите /path/to/recent/file/fileв приведенном выше примере). -nОпция, доступная в некоторых версиях ln, будет заботиться о симлинках справочников для вас, заменяя их по мере необходимости:
ln -sfn /path/to/data/folder/month/date/hour/minute/file /path/to/recent/file
POSIXln не определяет, -nпоэтому вы не можете полагаться на это вообще. Большая часть lnповедения определяется реализацией, поэтому вам действительно необходимо проверить специфику системы, которую вы используете. Если вы используете GNUln , вы можете использовать -tи -Tварианты тоже, чтобы сделать его поведение полностью предсказуемо в присутствии каталогов ( т.е. не в состоянии, а не создавать ссылку внутри существующего каталога с тем же именем).