bash - 如何复制文件和指向该文件的符号链接?
问题描述
我正在尝试复制一个包含文本文件和指向文本文件的符号链接的文件夹。如何实现文件夹 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/
我自己测试了这个,这似乎实现了你想要的设置。评论中建议的第一个解决方案不保留链接,而第二个解决方案将整个目录 Folder1 的副本放入 Folder1_copy。
重要警告:对于复制到 Folder1_copy 以实际指向 Folder1_copy 中的其他复制文件而不是 Folder1 中的原始文件的 Folder1 中的任何符号链接,需要创建这些符号链接以基于它们在 Folder1 中的相对路径而不是指向文件绝对路径。
推荐阅读
- python - 使用 Boto3 检查上次为给定卷列表拍摄快照的时间
- deep-learning - 使用自动编码器进行降维 - 学习特征中的某些列完全为零
- laravel - Laravel如何从UserController调用受保护的函数fireOtherDeviceLogoutEvent()?
- javascript - 如何调试flowtype极慢的性能?
- autocomplete - Fluxcd cli 自动完成 Kubernetes
- sql - 如果表具有 OneToMany 和 @Column(unique = true) 关系,如何在多个表中插入数据
- python - LibreOffice Calc Python UDF 的基本包装器
- reporting-services - SSRS 报告 - 徽章
- c++ - VS代码不能输出非英文字符
- javascript - 在 vite.js 中缩小样式化的组件类名