如何检查目录的md5hash并将其与包含发送到目标目录的所有文件的哈希的文件进行比较

时间:2018-04-28 16:19:01

标签: linux hash

我的目标是通过创建一个存储我已复制到目标目录的文件的哈希值的文件来检查我已复制到目标目录的文件以及我没有的文件。如果源目录的哈希值与包含已复制的文件的所有哈希值的文件内的哈希值不匹配,则将该文件复制到目标目录并将新哈希值添加到该文件中包含已复制到目标目录的所有文件哈希值。

src_dir = / source_directory中 dest_dir将= / destination_directory hashofall =存储已复制到$ dest_dir

的所有文件的哈希值的文本文件

md5hash $ src_dir / * #compare这个哈希与$ hashofall 如果匹配,请不要将文件复制到$ src_dir if不匹配将文件复制到$ dest_dir并将md5hash存储到$ hashofall中那些刚刚在linux中复制的文件。

这样做的目的是检查我没有复制过哪些新文件。

1 个答案:

答案 0 :(得分:-1)

你可以尝试一下简单的diff dir1 dir2,但是如果对你来说还不够,那就试试这样:

hashes_src=$(cd $srcDir ; find  . -type f -exec md5sum {} \; | sort)
hashes_src=$(cd $dstDir ; find  . -type f -exec md5sum {} \; | sort)
comm -23 <(echo $hashes_src) <(echo hashes_dst)