Come copiare i collegamenti simbolici alla destinazione come cartelle normali


68

ho una cartella con collegamenti simbolici:

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

voglio copiarlo su ~ / solrTest ma voglio anche copiare file da symlink

quando provo a farlo cp -r /usr/share/solr/ ~/solrTest

avrò un link simbolico qui:

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

Risposte:


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

Controlla la manpagina per i comandi unix conman cp

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

4
Ottengo "cp: le opzioni -H, -L e -P potrebbero non essere specificate con l'opzione -r".
Balupton,

3
@balupton: prova -LR
pt2ph8,

11

Dalla pagina man:

'-L', '- dereference' - Segui i collegamenti simbolici quando copi da loro. Con questa opzione, cp non può creare un collegamento simbolico. Ad esempio, un collegamento simbolico (in un file normale) nella struttura di origine verrà copiato in un file normale nella struttura di destinazione.

Quindi questa è l'opzione che dovresti provare.


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

Dalla cp(1)pagina man:

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

0

Una soluzione rapida è:

$ mkdir dest_dir
$ cp symlink_dir/* dest_dir/

lo svantaggio è che devi prima creare la directory di destinazione


In alcune shell, questo non copia file / cartelle nascosti da symlink_dir.
vmrob
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.