Як скопіювати посилання на цілі як звичайні папки


68

у мене папка із символьними посиланнями:

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, але я також хочу скопіювати файли з symlink

коли я намагаюся 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

Відповіді:


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

Перевірте manсторінку на наявність Unix-командman cp

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

4
Я отримую "cp: параметри -H, -L та -P не можуть бути задані параметром -r."
балуптон

3
@balupton: спробуйте -LR
pt2ph8

11

З чоловічої сторінки:

'-L', '- dereference' - дотримуйтесь символічних посилань, копіюючи з них. За допомогою цієї опції 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/

недолік полягає в тому, що спочатку потрібно створити каталог призначення


У деяких оболонках це не буде копіювати приховані файли / папки symlink_dir.
vmrob
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.