我的目标是通过创建一个文件来存储已复制到目标目录的文件的哈希值,检查哪些文件已复制到目标目录以及哪些文件尚未复制。如果源目录的哈希值与包含已复制文件的所有哈希值的文件内的哈希值不匹配,则将该文件复制到目标目录,并将新哈希值添加到包含已复制到目标目录的文件的所有哈希值的文件中。
src_dir=/源目录 dest_dir=/destination_directory hashofall=存储已复制到 $dest_dir 的所有文件的哈希值的文本文件
md5hash $src_dir/* #将此哈希值与 $hashofall 进行比较 如果匹配,则不将文件复制到 $src_dir 如果不匹配,则将文件复制到 $dest_dir 并将 md5hash 存储到刚刚在 linux 中复制的文件的 $hashofall 中。
这样做的目的是检查哪些新文件我尚未复制。
最佳答案
您可以尝试简单的 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)
关于linux - 如何检查目录的 md5hash 并将其与包含发送到目标目录的所有文件的哈希值的文件进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50078607/