Quiero extraer datos /path/to/data/folder/month/date/hour/minute/file
y vincularlos /path/to/recent/file
y hacer esto automáticamente cada vez que se crea un archivo.
Suponiendo que no sabré de antemano si /path/to/recent/file
existe, ¿cómo puedo crearlo (si no existe) o reemplazarlo (si existe)? Estoy seguro de que solo puedo verificar si existe y luego hacer una eliminación, un enlace simbólico, pero me pregunto si hay un comando simple que haga lo que quiero en un solo paso.
Respuestas:
Por favor lea el manual .
fuente
/path/to/symlink
ya es un enlace simbólico a un directorio, sin la-n
bandera, obtendrá el enlace simbólico creado en/path/to/symlink/target
lugar de reemplazarlo/path/to/symlink
/path/to/symlink
existe y es un directorio, pero no un enlace simbólico. Creo que la única forma de evitarlo es correrrm -rf
primero.Este es el propósito de
ln
la-f
opción: elimina los archivos de destino existentes, si los hay, antes de crear el enlace.creará el enlace simbólico al que
/path/to/recent/file
apunta/path/to/data/folder/month/date/hour/minute/file
, reemplazando cualquier archivo existente o enlace simbólico a un archivo si es necesario (y funcionará bien si ya no hay nada allí).Si ya existe un directorio, o enlace simbólico a un directorio con el nombre de destino, el enlace simbólico se creará dentro de él (por lo que terminaría
/path/to/recent/file/file
en el ejemplo anterior). La-n
opción, disponible en algunas versiones deln
, se encargará de los enlaces simbólicos a los directorios, reemplazándolos según sea necesario:POSIX
ln
no especifica,-n
por lo que no puede confiar en él en general. Gran parte delln
comportamiento está definido por la implementación, por lo que realmente necesita verificar los detalles del sistema que está utilizando. Si está utilizando GNUln
, también puede usar las opciones-t
y-T
, para hacer que su comportamiento sea completamente predecible en presencia de directorios ( es decir, falla en lugar de crear el enlace dentro del directorio existente con el mismo nombre).fuente