Я пытаюсь сделать что-то немного уникальное и не могу найти подходящую командную строку терминала для использования.

Я пытаюсь по существу решить для следующей проблемы:

У меня есть два тома данных, которые существуют на отдельных серверах. Эти тома предположительно содержат много дубликатов файлов. Тем не менее, из-за природы этих серверов, я не могу программно ничего удалить, поскольку каждый из них имеет свой собственный крайний случай использования. Поэтому я должен найти дубликаты между двумя томами, затем организовать, какой из двух томов имеет "последнюю и самую лучшую" последнюю модифицированную версию дублирования, и вручную исследовать каждый из них.

Для простоты давайте просто назовем тома "Folder1" и "Folder2"

Я получил это далеко через терминал на моем компьютере Mac:

diff -rs /Folder1 /Folder2 > diff-test1.txt 

Это дает мне идентичность дубликатов между двумя, но не говорит мне, какой том имеет «последний и самый большой». Кто-нибудь может помочь?

1 ответ1

0

Я бы использовал две команды 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) различны.

NB. Если вы опустите флаг --dry-run тогда rsync действительно попытается передать, так что будьте осторожны с этим.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .