Хотите рекурсивно сравнивать дельта-файлы, используя rsync, когда у меня есть список файлов слева в текстовом файле и папка справа - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть список файлов, упомянутых слева в текстовом файле, и у меня есть отдельная папка, где у меня есть список физических файлов. Я должен сравнить FileList.txt левой руки с файлами каталогов правой руки (рекурсивно) и скопировать дельта-часть с помощью rsync. Я использую приведенную ниже команду, но не получаю никаких файлов для копирования.

Ниже приведена попытка пробного запуска.

rsync -rvnc --include-from = / cygdrive / c / Users / SG066221 / Desktop / scripts / diff_Lib_WITH_EMPLTY.txt / cygdrive / c / Users / SG066221 / Desktop / scripts / FROM_LIST_2_ANOTHER / 1> C: \ Users SG066221 \ Desktop \ сценарии \ diff_FINAL.txt

Вывод:

отправка списка добавочных файлов drwx ------ 0 2018/11/12 14:26:18.

отправлено 38 байт, получено 64 байта 204,00 байт / с общий размер 0 ускорение составляет 0,00 (СУХОЙ БЕГ)

1 Ответ

0 голосов
/ 15 ноября 2018

Правильный синтаксис для rsync:

rsync <options> <include> <exclude> src/ dest/

Ваши проблемы:

  • Если вы укажете только один каталог, ничего не произойдет.
  • Если у вас есть включения без исключений, то они будут включать все.
  • (у вас есть пробный набор, но вы, вероятно, знали это.)

Попробуйте это:

rsync -rvc --include-from=file.txt --exclude='*' src/ dest/

Убедитесь, что file.txt содержит только имена файлов в пределах src/ (то есть с удаленным src /). Убедитесь, что все подкаталоги, из которых вы хотите скопировать файлы, также перечислены в отдельной строке (в качестве альтернативы добавьте --include='*/' перед исключением).

То, что он говорит, скопируйте из src в dest, включая файлы в file.txt и исключая все остальное.

...