我正在尝试做一些独特的事情,但找不到正确的终端命令行来使用。
我正在尝试从根本上解决以下问题:
我有两个卷的数据,它们位于不同的服务器上。这些卷可能有许多重复的文件。但是,由于这些服务器的性质,我无法以编程方式删除任何内容,因为每个卷都有自己的使用边缘情况。因此,我必须找到两个卷之间的重复项,然后组织两个卷中的哪一个具有重复项的“最新和最佳”最后修改版本,并手动调查每个卷。
为了简单起见,我们将卷称为“Folder1”和“Folder2”
我已经通过 Mac 机器上的终端完成了以下操作:
diff -rs /Folder1 /Folder2 > diff-test1.txt
这给了我两者之间重复项的身份,但没有告诉我哪一卷包含“最新和最佳”。有人能帮忙吗?
答案1
我会使用两个rsync --dry-run
命令而不是单个命令diff
。例如,给定五个文件,其中一些在 中较新Folder1
,一些在 中较新Folder2
,
$ ls -port Folder?/*/*
-rw-r--r-- 1 Deditos 0 25 Jan 12:39 Folder2/subfolder/file03.txt
-rw-r--r-- 1 Deditos 0 25 Jan 12:39 Folder2/subfolder/file02.txt
-rw-r--r-- 1 Deditos 0 25 Jan 12:39 Folder2/subfolder/file01.txt
-rw-r--r-- 1 Deditos 0 25 Jan 12:39 Folder1/subfolder/file05.txt
-rw-r--r-- 1 Deditos 0 25 Jan 12:39 Folder1/subfolder/file04.txt
-rw-r--r-- 1 Deditos 0 25 Jan 12:39 Folder1/subfolder/file03.txt
-rw-r--r-- 1 Deditos 29 25 Jan 12:44 Folder1/subfolder/file01.txt
-rw-r--r-- 1 Deditos 29 25 Jan 12:44 Folder1/subfolder/file02.txt
-rw-r--r-- 1 Deditos 29 25 Jan 13:13 Folder2/subfolder/file04.txt
-rw-r--r-- 1 Deditos 29 25 Jan 13:13 Folder2/subfolder/file05.txt
您可以检查rsync [SRC] [DEST]
从源目录复制哪些内容来更新目标目录:
$ rsync --dry-run -ariu ./Folder1/ ./Folder2/
.d..t.... ./
.d..t.... subfolder/
>f.st.... subfolder/file01.txt
>f.st.... subfolder/file02.txt
$ rsync --dry-run -ariu ./Folder2/ ./Folder1/
.d..t.... ./
.d..t.... subfolder/
>f.st.... subfolder/file04.txt
>f.st.... subfolder/file05.txt
这也为您提供了一些有关文件之间差异性质的信息,例如,>f.st....
意味着大小(s
)和时间戳(t
)不同。
注意:如果省略--dry-run
标志,则rsync
实际上会尝试传输,因此请小心。