Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux中散列目录?_Linux_Ubuntu - Fatal编程技术网

在Linux中散列目录?

在Linux中散列目录?,linux,ubuntu,Linux,Ubuntu,linux中是否有任何命令可以计算包含文件+目录(这些目录将来包含文件和更多目录)的控制器的SHA1哈希 我想你应该可以用这个 find . -type f -exec sha1sum {} \; 只需将“.”替换为您的目录。我认为您应该能够使用此目录 find . -type f -exec sha1sum {} \; 只需将“.”替换为您的目录。您指的是一个文件一个文件地替换吗 $ cd my_folder $ sha1sum * d73c8369c7808f7e96561b4c18d6

linux中是否有任何命令可以计算包含文件+目录(这些目录将来包含文件和更多目录)的控制器的SHA1哈希

我想你应该可以用这个

find . -type f -exec sha1sum {} \;

只需将“.”替换为您的目录。

我认为您应该能够使用此目录

find . -type f -exec sha1sum {} \;

只需将“.”替换为您的目录。

您指的是一个文件一个文件地替换吗

$ cd my_folder
$ sha1sum *
d73c8369c7808f7e96561b4c18d68233678f354f  xxx.txt
5941a4f547f69b4b6271a351242ce41b3e440795  yyy.txt
还是把所有的文件放在一起

$ cat my_folder/* | sha1sum 
7713154076812602f6f737cf5ad5924813182298  

你是说一个个文件

$ cd my_folder
$ sha1sum *
d73c8369c7808f7e96561b4c18d68233678f354f  xxx.txt
5941a4f547f69b4b6271a351242ce41b3e440795  yyy.txt
还是把所有的文件放在一起

$ cat my_folder/* | sha1sum 
7713154076812602f6f737cf5ad5924813182298  
缺陷/优势(取决于您的观点):

  • $DIRECTORY
    在这两种情况下必须完全相同(因此必须使用 相对路径)
  • 这将考虑文件修改日期,而不仅仅是文件内容
缺陷/优势(取决于您的观点):

  • $DIRECTORY
    在这两种情况下必须完全相同(因此必须使用 相对路径)
  • 这将考虑文件修改日期,而不仅仅是文件内容

这个问题似乎离题了。但是,您可以使用
sha1deep
。它通常包含在名为
md5deep
的包中。这个问题与主题无关。但是,您可以使用
sha1deep
。它通常包含在一个名为
md5deep
的包中。。。添加一个“p”并获得所有权!实际上,如果你要把一个目录转移到另一台计算机上,你会想先对它进行tar,然后对它进行sha1sum,然后复制它(除非它很大)。请注意,ssh(以及sftp和scp)已经提供了良好的完整性检查。@RobinGreen这是一个很好的技巧。。您所说的“$DIRECTORY在两种情况下必须完全相同(因此必须使用相对路径)”是什么意思?我没有正确理解它。如果一个目录位于
/home/user/foo
,而另一个目录位于
/home/user/copy/foo
,则在比较它们时不能使用绝对路径,因为它们将出现在tar文件中,因此,tar文件将是不同的。(好的,实际上没有tar文件,我指的是类似于“虚拟tar文件”的文件。)在这两种情况下,您可以通过使用相对路径(如
foo
)来修复此问题。当然,你必须先把cd放入正确的目录中。哦,那太好了,就像这样。。。添加一个“p”并获得所有权!实际上,如果你要把一个目录转移到另一台计算机上,你会想先对它进行tar,然后对它进行sha1sum,然后复制它(除非它很大)。请注意,ssh(以及sftp和scp)已经提供了良好的完整性检查。@RobinGreen这是一个很好的技巧。。您所说的“$DIRECTORY在两种情况下必须完全相同(因此必须使用相对路径)”是什么意思?我没有正确理解它。如果一个目录位于
/home/user/foo
,而另一个目录位于
/home/user/copy/foo
,则在比较它们时不能使用绝对路径,因为它们将出现在tar文件中,因此,tar文件将是不同的。(好的,实际上没有tar文件,我指的是类似于“虚拟tar文件”的文件。)在这两种情况下,您可以通过使用相对路径(如
foo
)来修复此问题。当然,您必须先将
cd
放入正确的目录。