当前位置: 首页 > 面试题库 >

Linux:为给定的文件夹和内容计算单个哈希?

夏侯博
2023-03-14
问题内容

当然,必须有一种方法可以轻松地做到这一点!

我已经尝试了Linux命令行应用程序,例如sha1sum和,md5sum但是它们似乎只能计算单个文件的哈希值并输出哈希值列表,每个文件一个哈希值。

我需要为文件夹的整个内容生成一个哈希(不仅仅是文件名)。

我想做类似的事情

sha1sum /folder/of/stuff > singlehashvalue

编辑: 澄清一下,我的文件位于目录树中的多个级别,它们并不都位于同一根文件夹中。


问题答案:

一种可能的方式是:

sha1sum路径/到/文件夹/ * | sha1sum

如果有整个目录树,则最好使用find和xargs。一种可能的命令是

查找路径/到/文件夹-type f -print0 | 排序-z | xargs -0 sha1sum | sha1sum

最后,如果您还需要考虑权限和空目录:

(find path/to/folder -type f -print0  | sort -z | xargs -0 sha1sum;
 find path/to/folder \( -type f -o -type d \) -print0 | sort -z | \
   xargs -0 stat -c '%n %a') \
| sha1sum

参数stat将导致它打印文件名,然后是其八进制权限。这两个查找将一个接一个地运行,从而导致磁盘IO数量翻倍,第一个查找所有文件名并校验和内容,第二个查找所有文件和目录名,打印名称和方式。然后,将对“文件名和校验和”列表以及“具有权限的名称和目录”列表进行校验和,以得到较小的校验和。



 类似资料:
  • 本文向大家介绍Linux中查看指定文件夹内各个子文件夹内的文件数量,包括了Linux中查看指定文件夹内各个子文件夹内的文件数量的使用技巧和注意事项,需要的朋友参考一下 count脚本 执行 $ bash count.sh benchmark benchmark: 2317 benchmark/0: 20 benchmark/1: 891 benchmark/2: 65 benchmark/3: 1

  • 问题内容: 我花了一些时间试图找到一种方法来计算JAR内文件夹中文件的数量。我整理了几个示例,这些示例具有不同的用途,可以完成这项工作。当我通过Eclipse运行代码时,它的计数就很好,但是在导出到JAR后,它失败并返回0。在这种情况下,我使用的文件夹路径只是“ rules /”。我将不胜感激任何建议或样品。谢谢。 编辑: 以下内容与我的原始问题不完全匹配,但是由于有了MadProgrammer,

  • 问题内容: 我有一个网络目录,该目录中有一个名为的文件夹。 其中有几个文件和文件夹。我想赋予该文件夹以及该文件夹内的所有文件和文件夹所有权限。 我该怎么做呢?我猜通过.htaccess。 问题答案: 如果要使用控制台命令,它将为: 。该(或)选项使其递归的。 或者,如果要使当前目录中的所有文件都具有所有权限类型: 如果您需要有关命令的更多信息,请参见:文件权限

  • 问题内容: 我想将内容中的某些目录压缩为zip文件 例如假设我有这个目录结构 现在我想将其压缩到哪个正在工作 当我解压缩它时,我得到了相同的结构…我想将 内容 压缩 到其中 ,当我解压缩它时,提取文件后,我得到的文件里面没有root文件夹dir1 我尝试使用此代码处理路径,但是它不起作用,我在这里错过了什么吗? 我试过了 或者也许GO中有更简单的方法来实现这一目标? 问题答案: 假设您正在按以下方

  • 问题内容: 我有一个包含数千个.txt文件的文件夹。我想根据以下模型将它们合并到一个大的.csv文件中: 我发现应该执行此工作的R脚本(https://gist.github.com/benmarwick/9265414),但它显示此错误。 我不明白我的错是什么。 没关系,我很确定没有R也可以做到这一点。如果您知道一个非常优雅和简单的方法,将不胜感激(这对像我这样的很多人很有用) 精度:文本文件为

  • 我有一个名为images的文件夹,位于用户的文件夹中,如: 图像 用户1 当我从数据库中删除一个用户时,我还想删除该用户的所有文件和文件夹。所有这些都在一个包含函数的类中,但是当我执行函数时,我的整个文件夹图像都会被删除。。。 我已经检查了是否选择了正确的用户,路径是否正确。当我在测试的时候。php文件它工作得很好,但在我的函数中它被破坏了。 如果单击“删除”按钮,则转到此功能: 通过给定的id获