Tengo un directorio particular lleno de otros directorios organizados (nombrados) por fecha. Para facilitar la referencia, tengo un enlace simbólico llamado current
apuntando al último.
En el script que crea nuevos directorios de fechas, deseo crear o corregir el current
enlace simbólico para que apunte al directorio más nuevo una vez creado.
Pensé que el comando apropiado sería, por ejemplo,
ln -fs 2017-03-01 current
Si el current
enlace simbólico aún no existe, esto funciona.
Sin embargo, si el current
enlace simbólico ya se ha creado (y puntos, digamos, en el directorio 2017-02-28
), esto no funciona:
En lugar de eliminar el enlace simbólico current
y crear un nuevo enlace simbólico al current
que apunte 2017-03-01
, el resultado será un enlace simbólico roto llamado 2017-03-01
apuntándose a sí mismo, que descansa dentro del directorio 2017-02-28
(que es donde current
apunta el enlace simbólico y aún señala).
Esto me desconcertó, así que leí las especificacionesln
. Resulta que este es el comportamiento esperado:
SINOPSIS
ln [-fs] [-L|-P] source_file target_file ln [-fs] [-L|-P] source_file... target_dir
DESCRIPCIÓN
...
La segunda forma de sinopsis se asumirá cuando el operando final nombre un directorio existente.
Parece, entonces, que no hay forma alguna de volver a señalar un enlace simbólico que actualmente apunta a un directorio a un nuevo objetivo, donde el nuevo objetivo tiene un nombre diferente del nombre del enlace simbólico. Así ln -fs
que no funciona de la manera que pensé.
¿ Debo rm current
o hay otro enfoque que he pasado por alto?