Linux 如何将具有符号链接的文件夹复制到另一个目录

Linux 如何将具有符号链接的文件夹复制到另一个目录,linux,ubuntu,unix,command-line,termux,Linux,Ubuntu,Unix,Command Line,Termux,我正在尝试将具有符号链接的文件夹复制到另一个目录 注意-我打算复制的实际文件是不同的,但为了便于演示这个问题,我举了一个例子 xd003@localhost:~$ ls /data/data/com.termux/files/home/source 1.txt 2.txt 3.txt symlink xd003@localhost:~$ 这是源文件夹,其中包含一些文件和符号链接,目标文件夹为空 xd00

我正在尝试将具有符号链接的文件夹复制到另一个目录

注意-我打算复制的实际文件是不同的,但为了便于演示这个问题,我举了一个例子

xd003@localhost:~$ ls /data/data/com.termux/files/home/source
1.txt  2.txt  3.txt  symlink                                           
xd003@localhost:~$
这是源文件夹,其中包含一些文件和符号链接,目标文件夹为空

xd003@localhost:~$ cp -R /data/data/com.termux/files/home/source /sdcard/dest
cp: cannot create symbolic link '/sdcard/dest/source/symlink': Operation not permitted
xd003@localhost:~$
我将源文件夹复制到目标目录,但我收到一个错误,说明无法复制符号链接,只是为了确认我检查了目标目录,但正如预期的那样,它没有复制符号文件

xd003@localhost:~$ ls /sdcard/dest/source                              
1.txt  2.txt  3.txt
xd003@localhost:~$
如何修复此问题并将符号链接复制到其原始状态

编辑-在一些谷歌搜索和下面的一个答案建议之后,我尝试使用cp-LR命令。它没有给我任何错误,但它将符号链接复制为文件夹,而不是其原始状态,正如您可以看到的,下面的第一行本身显示,目标中的符号链接复制为文件夹,而在源中,它确实是一个正确的符号链接

xd003@localhost:~$ ls -la /sdcard/dest/source | grep "\->"
xd003@localhost:~$ ls /sdcard/dest/source
1.txt  2.txt  3.txt  symlink
xd003@localhost:~$ ls -la /data/data/com.termux/files/home/source | grep "\->"
lrwxrwxrwx. 1 xd003 xd003   13 Jun 12 12:40 symlink -> /sdcard/data/
xd003@localhost:~$

您需要取消对链接的引用:

cp -L -R files/* location/

-L
用于取消引用或
-dereference

好的,这是一个进步,现在我没有收到任何符号链接未复制错误,但是如果将符号链接复制为文件夹,而不是原始文件夹state@Sachin我从报纸上读到这件事。