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


68

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

Réponses:


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

Consultez la manpage pour les commandes unix avecman cp

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

4
Je reçois "cp: les options -H, -L et -P ne peuvent pas être spécifiées avec l'option -r."
Balupton

3
@balupton: essayez -LR
pt2ph8

11

De la page de manuel:

'-L', '- dereference' - Suivez les liens symboliques pour les copier. 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.


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

De la cp(1)page de manuel:

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

0

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


Dans certains shells, cela ne copiera pas les fichiers / dossiers cachés symlink_dir.
vmrob
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.