gpt4 book ai didi

macos - cp -a 无法覆盖符号链接(symbolic link)目录

转载 作者:行者123 更新时间:2023-11-29 09:26:24 24 4
gpt4 key购买 nike

我有一个包含符号链接(symbolic link)文件夹的文件夹。

root
|- Current document -> version 2 document
|- Current folder -> version 2 folder
|- Archives
|- version 1 document
|- version 1 folder
|- ...
|- version 2 document
|- version 2 folder
|- ...

当我使用 cp -r 复制此目录时,文件夹会复制,但由于 -r 遵循符号链接(symbolic link),因此版本 2 被复制了两次。

当我使用 cp -R 复制此目录时,该文件夹第一次复制得很好并保留了符号链接(symbolic link)。但是,在第二个副本上,它无法覆盖该文件夹,说明:

cp: cannot overwrite directory 'Current folder' with 'Current folder'

我还尝试了 cp -a == cp -pPR 以及 -f 版本(cp -fRcp -fa)

我认为这是通过遵循符号链接(symbolic link)来测试当前文件夹是否是一个文件夹,然后无法用符号链接(symbolic link)覆盖符号链接(symbolic link)(它认为它是一个文件夹)。

用符号链接(symbolic link)文件夹一致地复制和覆盖文件夹的正确命令是什么?

最佳答案

On OSX, use ditto

它具有与 osx 复制/粘贴相同的行为。


附言您可能需要注意的一个陷阱:

cp -a foo bar

将文件夹 foo/移动到 bar/(即 bar/foo/file1, bar/foo/file2)

ditto foo bar

会将文件夹 foo/的内容移动到 bar(即 bar/file1、bar/file2)

关于macos - cp -a 无法覆盖符号链接(symbolic link)目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18365834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com