У меня есть определенный каталог, полный других каталогов, организованных (названных) по дате. Для удобства пользования у меня есть символическая ссылка, current
указывающая на последнюю.
В сценарии, который создает новые каталоги дат, я хочу создать или исправить current
символическую ссылку, чтобы она указала на самый новый каталог после его создания.
Я думал, что соответствующая команда будет просто, например,
ln -fs 2017-03-01 current
Если current
символическая ссылка еще не существует, это работает.
Однако, если current
символическая ссылка уже создана (и указывает, скажем, на каталог 2017-02-28
), это не сработает:
Вместо удаления символической ссылки current
и создать новую символическую ссылку , current
которая указывает на 2017-03-01
результат вместо этого будет сломанный символическая под названием 2017-03-01
указывая на себя, отдыхая в директории 2017-02-28
(что, где символическая current
заострены и еще точки).
Это сбило меня с толку, поэтому я прочитал спецификации дляln
. Оказывается, это ожидаемое поведение:
СИНТАКСИС
ln [-fs] [-L|-P] source_file target_file ln [-fs] [-L|-P] source_file... target_dir
ОПИСАНИЕ
...
Вторая форма резюме должна быть принята, когда последний операнд называет существующий каталог.
Таким образом, кажется, что нет никакого способа переопределить символическую ссылку, которая в данный момент указывает на каталог для новой цели, где новая цель имеет имя, отличное от имени символической ссылки. Так ln -fs
что не работает так, как я думал.
Должен ли я rm current
или есть другой подход, который я упустил?