如何将符号链接复制到作为普通文件夹的目标


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

Answers:


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选项一起指定”。
balupton'4

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/

缺点是您必须先创建目标目录


在某些Shell中,这不会从中复制隐藏的文件/文件夹symlink_dir
vmrob
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.