【问题标题】:How do i copy a folder having symbolic link to another directory如何将具有符号链接的文件夹复制到另一个目录
【发布时间】:2020-06-12 07:27:33
【问题描述】:

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

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

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:~$

【问题讨论】:

    标签: linux ubuntu unix command-line termux


    【解决方案1】:

    您需要取消引用链接:

    cp -L -R files/* location/
    

    -L 用于取消引用或--dereference

    【讨论】:

    • 好吧,这是一些进步,现在我没有收到任何符号链接未复制错误,但如果将符号链接复制为文件夹而不是其原始状态
    • @Sachin 我从here 那里读到了这个。
    猜你喜欢
    • 2013-05-21
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 2023-03-14
    • 2013-09-30
    • 2021-05-02
    相关资源
    最近更新 更多