¿Cómo forzar la creación de un enlace simbólico?

10

Tengo un directorio particular lleno de otros directorios organizados (nombrados) por fecha. Para facilitar la referencia, tengo un enlace simbólico llamado currentapuntando al último.

En el script que crea nuevos directorios de fechas, deseo crear o corregir el currentenlace 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 currentenlace simbólico aún no existe, esto funciona.


Sin embargo, si el currentenlace 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 currenty crear un nuevo enlace simbólico al currentque 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 currentapunta 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 -fsque no funciona de la manera que pensé.

¿ Debo rm currento hay otro enfoque que he pasado por alto?

Comodín
fuente

Respuestas: