¿Cómo reemplazar un enlace simbólico con una copia de un archivo al que se vincula?


15

Teniendo un enlace simbólico (único, no se necesita procesamiento de sistema de archivos por lotes), ¿qué línea de comando usar para reemplazarlo con una copia del archivo al que se vincula?

Respuestas:


16
cp --remove-destination "$(readlink <symlink>)" <symlink>

1
error "-bash: error de sintaxis cerca del token inesperado 'nueva línea'" cuando se ejecuta desde un entorno debian.
Lin Song Yang

Si <symlink>es un enlace simbólico a una ruta relativa, eso solo funciona si <symlink>está en el directorio actual. Es posible que desee utilizar readlink -f. O si usa zsh:cp --remove-destination path/to/symlink(:A) path/to/symlink
Stéphane Chazelas

0

Podrías hacerlo:

file=path/to/symlink
{ rm -f -- "$file" && cat > "$file"; } < "$file"

(que solo copia el contenido, no los metadatos del archivo, como los permisos y la propiedad).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.