Cómo copiar enlaces simbólicos al destino como carpetas normales


68

Tengo una carpeta con enlaces simbólicos:

marek@marek$ ls -al /usr/share/solr/
razem 36
drwxr-xr-x   5 root root  4096 2010-11-30 08:25 .
drwxr-xr-x 358 root root 12288 2010-11-26 12:25 ..
drwxr-xr-x   3 root root  4096 2010-11-24 14:29 admin
lrwxrwxrwx   1 root root    14 2010-11-24 14:29 conf -> /etc/solr/conf

quiero copiarlo a ~ / solrTest pero también quiero copiar archivos del enlace simbólico

cuando trato de cp -r /usr/share/solr/ ~/solrTest

tendré enlace simbólico aquí:

marek@marek$ ls -al ~/solrTest
razem 36
drwxr-xr-x   5 root root  4096 2010-11-30 08:25 .
drwxr-xr-x 358 root root 12288 2010-11-26 12:25 ..
drwxr-xr-x   3 root root  4096 2010-11-24 14:29 admin
lrwxrwxrwx   1 root root    14 2010-11-24 14:29 conf -> /etc/solr/conf

Respuestas:


92
cp -Lr /usr/share/solr/ ~/solrTest

Consulte la manpágina para ver los comandos de Unix conman cp

   -L, --dereference
          always follow symbolic links in SOURCE

44
Obtengo "cp: las opciones -H, -L y -P pueden no especificarse con la opción -r".
balupton

3
@balupton: prueba -LR
pt2ph8

11

Desde la página del manual:

'-L', '- desreferenciar' - Siga los enlaces simbólicos cuando copie de ellos. Con esta opción, cp no puede crear un enlace simbólico. Por ejemplo, un enlace simbólico (a un archivo normal) en el árbol de origen se copiará a un archivo normal en el árbol de destino.

Entonces esta es la opción que debes probar.


5
cp -r -L /usr/share/solr/ ~/solrTest

Desde la cp(1)página del manual:

  -L, --dereference
        always follow symbolic links in SOURCE

0

Una solución rápida es:

$ mkdir dest_dir
$ cp symlink_dir/* dest_dir/

El inconveniente es que primero debe crear el directorio de destino


En algunos shells, esto no copiará archivos / carpetas ocultos symlink_dir.
vmrob
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.