Pusdeo Squirrel Asked: 2019-04-19 06:16:48 +0800 CST2019-04-19 06:16:48 +0800 CST 2019-04-19 06:16:48 +0800 CST 如何将硬链接移动到另一个磁盘 772 如果我们在磁盘上有一个文件并创建一个指向它的硬链接,那么我们就有两个对相同数据的引用。如果一个链接被删除,它不会影响另一个链接,因为它直接指向数据。 如果我有两个指向文件 ABC 的链接(A 和 B)并且我将链接 A 移动到另一个磁盘,那么我将拥有两个数据副本。链接 A 将指向新磁盘上的数据,链接 B 将指向旧磁盘上的数据。 如果我想将链接 A 和 B 都移动到新磁盘上,如何才能在新磁盘上没有两个数据副本的情况下做到这一点? linux hard-link 2 个回答 Voted Best Answer rush 2019-04-19T06:30:43+08:002019-04-19T06:30:43+08:00 rsync能够为您复制硬链接。检查-H选项: -H, --hard-links preserve hard links 0xSheepdog 2019-04-19T06:26:41+08:002019-04-19T06:26:41+08:00 您所描述的实际上是指向磁盘上数据的三 (3) 个指针: 美国广播公司 一个 乙 如果您mv A进入一个新的文件系统,它实际上会在新文件系统上创建数据的副本。 如果您mv B进入新文件系统,它会创建新文件系统上命名的数据的另一个副本B。但是,ABC 仍然留在原始文件系统上。 如果您想在新文件系统上复制原始文件和链接(将 source/ 和 new-file-system/ 替换为正确的路径),您应该怎么做: cp source/ABC new-file-system/ABC ln new-file-system/ABC A ln new-file-system/ABC B rm source/ABC source/A source/B 这将在新文件系统上复制/创建数据,在新文件系统上创建硬链接 A 和 B,然后删除旧数据和硬链接。 请务必在完成命令之前仔细检查所有语法,以免丢失数据。
rsync
能够为您复制硬链接。检查-H
选项:您所描述的实际上是指向磁盘上数据的三 (3) 个指针:
如果您
mv A
进入一个新的文件系统,它实际上会在新文件系统上创建数据的副本。如果您
mv B
进入新文件系统,它会创建新文件系统上命名的数据的另一个副本B
。但是,ABC 仍然留在原始文件系统上。如果您想在新文件系统上复制原始文件和链接(将 source/ 和 new-file-system/ 替换为正确的路径),您应该怎么做:
cp source/ABC new-file-system/ABC
ln new-file-system/ABC A
ln new-file-system/ABC B
rm source/ABC source/A source/B
这将在新文件系统上复制/创建数据,在新文件系统上创建硬链接 A 和 B,然后删除旧数据和硬链接。
请务必在完成命令之前仔细检查所有语法,以免丢失数据。