有没有办法确定文件系统中只有目录的md5哈希值?
我不想要文件的哈希值。我只想要目录和子目录的值。
答案 0 :(得分:0)
我认为它对python没有问题,而是OS:
>>> print(hashlib.md5(open('/home/tuls/dev', 'rb').read()).hexdigest())
...
IsADirectoryError: [Errno 21] Is a directory: '/home/tuls/dev'
并在控制台中相同:
~$ md5sum /home/tuls/dev/
md5sum: /home/tuls/dev/: Is a directory
这是因为目录不包含数据,只包含有数据的文件。看:
~$ du -hs Documents/
2,9G Documents/
~$ ls -lhd Documents/
drwxr-xr-x 5 tuls tuls 4,0K гру 2 11:21 Documents/
目录中有2,9G,但目录的权重是4,0K(只是元数据)
您的问题的答案是 - md5哈希不适用于目录,仅适用于文件。
答案 1 :(得分:0)
如果您确实需要计算目录的hash
- 您可能只计算此目录路径的哈希值。 (如前所述,目录可能不是特定操作系统中文件系统的可清除对象)
例如:
my_dir_path = 'C:\some\dir\name'
my_dir_hash = hash(my_dir_path)
此解决方案具有跨平台,快速且强大的功能。