use*_*518 4 command-line checksums
我一直在使用以下命令行对目录进行递归校验。它似乎完成了工作,但我仍然是一个新手,我一直在想,这样做有什么潜在的问题吗?此命令是否有可能丢失文件或以其他方式搞砸?
find ./dir/ -type f -exec sha1sum {} \; > files.sha1
Run Code Online (Sandbox Code Playgroud)
我看不出你的方法有什么问题。您正在排除目录,默认情况下 find 将包含隐藏文件。是的,没关系。
但我会为您提供另一种选择,因为这就是我所做的:
shopt -s globstar dotglob
sha1sum **
Run Code Online (Sandbox Code Playgroud)
globstar启用递归匹配**并dotglob启用匹配隐藏文件。在它们之间,它们扩展到所有文件名,而 sha1sum 可以解析它们。
这种方法的主要问题是它会将所有文件名传递给sha1sum一大堆。虽然这在小负载下可能会更快,但如果文件名太多,它会爆炸。我不知道什么是断点。