GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo convertir un enlace simbólico a un archivo normal?

for f in $(find -type l);do cp --remove-destination $(readlink $f) $f;done;
  • Comprueba los enlaces simbólicos en el directorio y los subdirectorios actuales find -type l
  • Obtener la ruta del archivo vinculado readlink $f
  • Elimine el enlace simbólico y copie el archivo cp --remove-destination $(readlink $f) $f

No hay un solo comando para convertir un enlace simbólico en un archivo normal. La forma más directa es usar readlink para encontrar el archivo al que apunta un enlace simbólico y luego copiar ese archivo sobre el enlace simbólico:

cp --remove-destination `readlink bar.pdf` bar.pdf

Por supuesto, si bar.pdf es, de hecho, un archivo regular para empezar, entonces esto destruirá el archivo. Por lo tanto, sería aconsejable realizar algunas comprobaciones de cordura.


Solo una repetición de las respuestas de otros, pero agregando la "verificación de cordura" para garantizar que el enlace pasado sea en realidad un enlace simbólico:

removelink() {
  [ -L "$1" ] && cp --remove-destination "$(readlink "$1")" "$1"
}

Esto dice que si el archivo es un enlace simbólico, ejecute el comando de copia.


Linux
  1. ¿Cómo convertir un archivo de sonido a Opus?

  2. Cómo convertir sistemas de archivos Ext a Btrfs

  3. ¿Cómo puedo vincular un archivo en Linux?

  4. ¿Cómo puedo convertir un puntero de archivo ( FILE* fp ) en un descriptor de archivo (int fd)?

  5. Cómo grep \n en el archivo

Cómo mover un archivo en Linux

Cómo vincular un archivo en Linux

Cómo convertir imágenes de cámara sin procesar a JPEG en Linux

Cómo convertir un archivo de Windows a un archivo UNIX

Cómo convertir un archivo .pem a un archivo .ppk en Windows y Linux

Cómo convertir la clave privada de PuTTY (.ppk) en clave SSH