Jak skopiować dowiązania symboliczne do docelowych jako normalne foldery

68

mam folder z dowiązaniami symbolicznymi:

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

Chcę skopiować go do ~ / solrTest, ale chcę również skopiować pliki z dowiązania symbolicznego

kiedy próbuję cp -r /usr/share/solr/ ~/solrTest

będę miał tutaj link symboliczny:

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ódło

Odpowiedzi:

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

Sprawdź na manstronie komendy unix za pomocąman cp

   -L, --dereference
          always follow symbolic links in SOURCE
Fabio
źródło
4
Otrzymuję komunikat „cp: opcje -H, -L i -P nie mogą być określone z opcją -r”.
balupton
3
@balupton: try
-LR
11

Ze strony podręcznika:

„-L”, „- dereference” - Podczas kopiowania z nich korzystaj z dowiązań symbolicznych. Dzięki tej opcji cp nie może utworzyć dowiązania symbolicznego. Na przykład dowiązanie symboliczne (do zwykłego pliku) w drzewie źródłowym zostanie skopiowane do zwykłego pliku w drzewie docelowym.

Jest to więc opcja, którą powinieneś wypróbować.

Migol
źródło
5
cp -r -L /usr/share/solr/ ~/solrTest

Ze strony podręcznika cp(1):

  -L, --dereference
        always follow symbolic links in SOURCE
amfetamachina
źródło
0

Jednym szybkim rozwiązaniem jest:

$ mkdir dest_dir
$ cp symlink_dir/* dest_dir/

wadą jest to, że musisz najpierw utworzyć katalog docelowy

Andreas Wong
źródło
W niektórych powłokach nie kopiuje to ukrytych plików / folderów symlink_dir.
vmrob