Сравнение двух папок на основе даты последнего изменения - PullRequest
0 голосов
/ 04 августа 2011

У меня есть две папки A и B, которые содержат идентичные структуру папок и файлы, но папка B содержит измененные файлы.Обе папки содержат подпапки тоже.Я хочу проверить, какие файлы были изменены в папке B, и скопировать его в другую папку C. Как этого добиться с помощью сценария cmd / shell?

Ответы [ 2 ]

0 голосов
/ 04 августа 2011

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

rsync -r --compare-dest=/path/to/A /path/to/B/ /path/to/C
0 голосов
/ 04 августа 2011

AFAIK rsync и unison не могут удовлетворить ваши потребности, так как вы хотите, чтобы изменения были помещены в третью папку C.

Этот код не проверен:

#python
import os
import shutil
a_dir=...
b_dir=...
c_dir=...
len_a_dir=len(a_dir)
for root, dirs, files in os.walk(a_dir):
    dirs.sort()
    for file in sorted(files):
        a_file=os.path.join(root, file)
        b_file='%s%s' % (b_dir, file[len_a_dir:])
        if os.path.getmtime(a_file)!=os.path.getmtime(b_file):
            c_file='%s%s' % (c_dir, file[len_a_dir:])
            shutil.copyfile(b_file, c_file)
...