Estoy tratando de escribir un script de Python que obtenga el md5sum de todos los archivos en un directorio (en Linux). Lo cual creo que he hecho en el código a continuación.Determinar si se han agregado, eliminado o modificado archivos en un directorio
Quiero poder ejecutar esto para asegurarme de que no haya ningún archivo dentro del directorio cambiado y que no se hayan agregado archivos para eliminar.
El problema es si realizo un cambio en un archivo en el directorio pero luego lo cambio. Obtengo un resultado diferente al ejecutar la función a continuación. (A pesar de que he cambiado de nuevo el archivo modificado
Puede alguien explicar esto y quiero saber si se puede pensar en un trabajo en torno
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
Editar:..? A medida que estas finas personas tienen contestado, se ve como el alquitrán incluye información de cabecera como fecha de modificación. Would utilizando el trabajo postal o cualquier otro formato diferente?
cualquier otra idea para arounds de trabajo?
Gran respuesta. El mismo método básico que describí pero en código. Bonito. –