Я пытаюсь написать скрипт на 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
Редактировать: Как ответили эти замечательные люди, похоже, что tar содержит информацию заголовка, такую как дата изменения. Будет ли использование zip работать по-другому или в другом формате?
Есть ли другие идеи для обхода?