59

у меня есть папка с символическими ссылками:

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

я хочу скопировать его в ~/solrTest, но я также хочу скопировать файлы из символической ссылки

когда я пытаюсь сделать cp -r /usr/share/solr/ ~/solrTest

у меня будет символическая ссылка здесь:

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

4 ответа4

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

Проверьте man страницу для unix-команд с man cp

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

С man-страницы:

'-L', '- разыменование' - переходить по символическим ссылкам при копировании с них. С этой опцией cp не может создать символическую ссылку. Например, символическая ссылка (на обычный файл) в исходном дереве будет скопирована в обычный файл в дереве назначения.

Так что это вариант, который вы должны попробовать.

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

Со страницы cp(1) :

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

Одним из быстрых решений является:

$ mkdir dest_dir
$ cp symlink_dir/* dest_dir/

недостаток в том, что вы должны сначала создать каталог назначения

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .