Cara menyalin symlink ke target sebagai folder normal


68

saya punya folder dengan symlink:

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

saya ingin menyalinnya ke ~ / solrTest tetapi saya ingin menyalin file dari symlink juga

ketika saya mencoba cp -r /usr/share/solr/ ~/solrTest

saya akan memiliki symlink di sini:

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

Jawaban:


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

Periksa manhalaman untuk perintah unix denganman cp

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

4
Saya mendapatkan "cp: opsi -H, -L, dan -P mungkin tidak ditentukan dengan opsi -r."
balupton

3
@balupton: coba
-LR

11

Dari halaman manual:

'-L', '- dereference' - Ikuti tautan simbolis saat menyalin dari mereka. Dengan opsi ini, cp tidak dapat membuat tautan simbolik. Misalnya, symlink (ke file biasa) di pohon sumber akan disalin ke file biasa di pohon tujuan.

Jadi ini opsi yang harus Anda coba.


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

Dari cp(1)halaman manual:

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

0

Salah satu solusi cepat adalah:

$ mkdir dest_dir
$ cp symlink_dir/* dest_dir/

kekurangannya adalah Anda harus membuat direktori tujuan terlebih dahulu


Dalam beberapa shell, ini tidak akan menyalin file / folder tersembunyi dari symlink_dir.
vmrob
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.