Це мета ln
російського -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
параметри та параметри, щоб зробити його поведінку повністю передбачуваною у присутності каталогів ( тобто не вдасться замість створення посилання всередині наявного каталогу з тим самим іменем).