如何复制文件和该文件的符号链接?

How to duplicate a file and a symlink to that file?

我正在尝试复制一个包含文本文件和文本文件符号链接的文件夹。 如何实现文件夹 1 的以下复制:

|---- Folder1
|     |---- file1.txt
|     |---- symlink_to_file1.txt

现在我想复制这个文件夹成为:

|---- Folder1_copy
|     |---- file1_copy.txt
|     |---- symlink_to_file1_copy.txt

通常名称不会更改为包含“_copy”,我只是添加这个以使示例清楚。

目前,如果我 "ctrl+c"、"ctrl+v" 我的文件夹结构,我得到:

|---- Folder1_copy
|     |---- file1_copy.txt
|     |---- symlink_to_file1.txt

上述解决方案:

rsync -av Folder1/* Folder1_copy/

但是这在复制的情况下不起作用

|---- Folder1
|     |---- Nested_folder1
|     |     |---- file1.txt
|     |---- Nested_folder2
|     |     |---- Nested_folder3
|     |     |     |---- symlink_to_file1.txt

在上面的文件结构上运行rsync -av Folder1/* Folder1_copy/之后,新的symlink_to_file1_copy.txt符号链接仍然指向原来的file1.txt

试试这个:rsync -av Folder1/* Folder1_copy/
我自己对此进行了测试,似乎可以实现您想要的设置。评论中建议的第一个解决方案不保留 link,而第二个解决方案将整个目录 Folder1 的副本放入 Folder1_copy。

重要警告:对于复制到 Folder1_copy 的 Folder1 中的任何 symlinks 实际上指向 Folder1_copy 中的其他复制文件而不是 Folder1 中的原始文件,那些需要创建 symlinks 以根据文件在 Folder1 中的 相对路径 而不是绝对路径指向文件。