![如何通过创建符号链接复制文件?](https://linux22.com/image/637999/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E5%88%9B%E5%BB%BA%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5%E5%A4%8D%E5%88%B6%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我想遍历一个文件系统,并通过创建符号链接而不是复制任何内容将其部分复制到另一个文件系统。
rsync
如果它有类似的选项那就太理想了--local-copy-via-symlink
,因为rsync
包含/排除过滤器是指定我想要复制的内容的最佳方式。
我知道我可以使用脚本来执行此操作,但是是否有一个巧妙的命令可以执行此操作?
答案1
- 符号链接不是文件的副本,而是指向另一个文件的指针。
- 使用文件名或链接名更改数据不会导致两个不同的文件,而真实的副本则会出现这种情况。
- 删除原始文件不会在符号链接的位置保留数据(副本),而是会得到所谓的损坏的符号链接,它指向不再存在的文件位置。
简单来说,没有什么“聪明”的事情可做。
编辑
Linux 不创建符号链接,而是有“绑定”挂载的概念。从 Linux 2.4.0 开始,可以将文件层次结构的一部分重新挂载到其他位置。调用方式为:
mount --bind olddir newdir
或 fstab 条目是:
/olddir /newdir none bind
调用此函数后,相同的内容可以在两个地方访问。这将保留所有现有权限。但您也没有符号链接。