Cách sao chép symlink để nhắm mục tiêu như các thư mục bình thường


68

tôi có một thư mục với các liên kết tượng trưng:

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

tôi muốn sao chép nó vào ~ / solrTest nhưng tôi cũng muốn sao chép các tập tin từ symlink

khi tôi cố gắng cp -r /usr/share/solr/ ~/solrTest

tôi sẽ có symlink ở đây:

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

Câu trả lời:


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

Kiểm tra mantrang cho các lệnh unix vớiman cp

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

4
Tôi nhận được "cp: các tùy chọn -H, -L và -P có thể không được chỉ định với tùy chọn -r."
balupton

3
@balupton: thử
-LR

11

Từ trang nam:

'-L', '- dereference' - Theo liên kết tượng trưng khi sao chép từ chúng. Với tùy chọn này, cp không thể tạo liên kết tượng trưng. Ví dụ: một liên kết tượng trưng (đến tệp thông thường) trong cây nguồn sẽ được sao chép sang một tệp thông thường trong cây đích.

Vì vậy, đây là tùy chọn bạn nên thử.


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

Từ cp(1)trang người đàn ông:

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

0

Một giải pháp nhanh chóng là:

$ mkdir dest_dir
$ cp symlink_dir/* dest_dir/

Hạn chế là bạn phải tạo thư mục đích trước


Trong một số shell, điều này sẽ không sao chép các tập tin / thư mục ẩn từ symlink_dir.
vmrob
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.