web-dev-qa-db-fra.com

Comment copier des liens symboliques vers des cibles comme des dossiers normaux

j'ai un dossier avec des liens symboliques:

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

je veux le copier dans ~/solrTest mais je veux aussi copier des fichiers de symlink

quand j'essaie de cp -r /usr/share/solr/ ~/solrTest

je vais avoir un lien symbolique ici:

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
66
Marek
cp -Lr /usr/share/solr/ ~/solrTest

Consultez la page man pour les commandes unix avec man cp

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

De la page de manuel:

‘-L’, ‘- déréférence’ - Suivez les liens symboliques lors de leur copie. Avec cette option, cp ne peut pas créer de lien symbolique. Par exemple, un lien symbolique (vers un fichier normal) dans l'arborescence source sera copié dans un fichier normal dans l'arborescence de destination.

C'est donc l'option que vous devriez essayer.

11
Migol
cp -r -L /usr/share/solr/ ~/solrTest

Depuis la page de manuel cp(1):

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

Une solution rapide consiste à:

$ mkdir dest_dir
$ cp symlink_dir/* dest_dir/

l'inconvénient est que vous devez d'abord créer le répertoire de destination

0
Andreas Wong