将每日备份目录(由 rsync 创建)移动到同一分区中的另一个目录

将每日备份目录(由 rsync 创建)移动到同一分区中的另一个目录

/mnt/X我有一个每日 rsync 脚本,将我的数据备份到外部硬盘驱动器(硬盘驱动器的根目录)上。我习惯--link-dest使用硬链接并避免重复数据。我需要在不丢失硬链接的情况下/mnt/X将所有日常备份移至 。/mnt/X/backups稍后我需要更改脚本以在新的目标目录中进行备份,/mnt/X/backups并在同一目录中查找前一天的备份。

您建议我如何进行搬家?

答案1

你不必做任何特别的事情。简单地,

mv /mnt/X/* to /mnt/X/backups/

(您将收到有关无法移动backups到自身的错误)。

硬链接基本上是一个索引节点号。硬链接的文件具有相同的索引节点号。无论您在同一文件系统中移动它们,inode 号都不会改变。因此不需要采取特殊措施。

首先使用一些简单的文件亲自尝试一下/tmp

/tmp $ mkdir aa
/tmp $ touch aa/f
/tmp $ ln aa/f aa/g
/tmp $ mkdir aa/new
/tmp $ mv aa/* aa/new
mv: cannot move 'aa/new' to a subdirectory of itself, 'aa/new/new'
/tmp $ ls -il aa/new/
13185910 -rw-r--r-- 2  0 Apr 11 13:32 f
13185910 -rw-r--r-- 2  0 Apr 11 13:32 g

相关内容