Определите, были ли добавлены какие-либо файлы, удаленные или изменены в каталоге

Я пытаюсь написать сценарий Python, который получит MD5Sum из всех файлов в каталоге (в Linux). Что я считаю, что я сделал в коде ниже.

Я хочу иметь возможность запустить его, чтобы убедиться, что файлы в каталоге не изменились, и файлы не были добавлены для удаления.

Проблема в том, что если я сделаю изменение в файл в каталоге, но затем измените его обратно. Я получаю другой результат от выполнения функции ниже. (Хотя я изменил модифицированный файл обратно.

Может ли кто-нибудь объяснить это. И дайте мне знать, если вы можете подумать о работе?

def get_dir_md5(dir_path):
    """Build a tar file of the directory and return its md5 sum"""
    temp_tar_path = 'tests.tar'
    t = tarfile.TarFile(temp_tar_path,mode='w')  
    t.add(dir_path)
    t.close()

    m = hashlib.md5()
    m.update(open(temp_tar_path,'rb').read())
    ret_str = m.hexdigest()

    #delete tar file
    os.remove(temp_tar_path)
    return ret_str

Редактировать: Поскольку эти прекрасные люди ответили, это выглядит как TAL включает в себя информацию заголовка, как дата модифицирована. Использовал бы ZIP-работы по-другому или другому формату?

Любые другие идеи для работы вокруг?

7
задан Mike Graham 6 September 2011 в 20:41
поделиться