Como copiar links simbólicos para o destino como pastas normais


68

Eu tenho uma pasta com links 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

Eu quero copiá-lo para ~ / solrTest, mas também quero copiar arquivos do link simbólico

quando eu tento cp -r /usr/share/solr/ ~/solrTest

terei link simbólico aqui:

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

Respostas:


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

Verifique a manpágina para comandos unix comman cp

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

4
Recebo "cp: as opções -H, -L e -P podem não ser especificadas com a opção -r".
balupton

3
@balupton: try -LR
pt2ph8

11

Na página do manual:

'-L', '- dereference' - Siga os links simbólicos ao copiar deles. Com esta opção, o cp não pode criar um link simbólico. Por exemplo, um link simbólico (para arquivo normal) na árvore de origem será copiado para um arquivo regular na árvore de destino.

Portanto, esta é a opção que você deve tentar.


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

Na cp(1)página do manual:

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

0

Uma solução rápida é:

$ mkdir dest_dir
$ cp symlink_dir/* dest_dir/

A desvantagem é que você deve primeiro criar o diretório de destino


Em algumas conchas, isso não copiará arquivos / pastas ocultos de symlink_dir.
vmrob
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.