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

标签 linux hash

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

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/

相关文章:

linux - 更改Linux中无主文件的文件权限

linux - Linux (Ubuntu) 上的 PyInstaller——在控制台中打开可执行文件

linux - 如何让 bash 日期脚本返回相对于非当前时间的星期几?

linux - 组合输入和输出 shell IO 重定向(以非标准顺序)

asp.net-mvc - 在 Route、ASP.net MVC 中获取当前片段

sql - 针对哈希 token 的 SQL SELECT 定时攻击的对策

linux - 具体到linux 2.6.30.5中的task_struct

ruby-on-rails - 在 ruby​​ 中重新排序哈希。让一把 key 永不过时

.net - String.GetHashCode() 的复杂性

Java可恢复哈希计算