我使用命令
find . -type f -exec sha256sum {} \; > sha256SumOutput
Run Code Online (Sandbox Code Playgroud)
散列文件夹层次结构中的每个文件。不幸的是,sha256sum没有find按字母顺序获取文件名。如何解决这个问题?
我想在对它们进行散列之前对它们进行排序,以便按字母顺序对它们进行散列(这是有原因的)。
A.B*_*.B. 25
使用一些管道和 sort
find . -type f -print0 | sort -z | xargs -r0 sha256sum > sha256SumOutput
Run Code Online (Sandbox Code Playgroud)
解释
从 man find
-print0
True; print the full file name on the standard output, followed
by a null character (instead of the newline character that -print
uses). This allows file names that contain newlines or other
types of white space to be correctly interpreted by programs
that process the find output. This option corresponds to the -0
option of xargs.
Run Code Online (Sandbox Code Playgroud)
从 man sort
-z, --zero-terminated
line delimiter is NUL, not newline
Run Code Online (Sandbox Code Playgroud)
从 man xargs
-r
If the standard input does not contain any nonblanks, do not run
the command. Normally, the command is run once even if there is
no input. This option is a GNU extension.
-0
Input items are terminated by a null character instead of by
whitespace, and the quotes and backslash are not special (every
character is taken literally). Disables the end of file string,
which is treated like any other argument. Useful when input
items might contain white space, quote marks, or backslashes.
The GNU find -print0 option produces input suitable for this mode.
Run Code Online (Sandbox Code Playgroud)
例子
% ls -laog
total 4288
drwxrwxr-x 2 4329472 Aug 17 08:20 .
drwx------ 57 20480 Aug 17 08:20 ..
-rw-rw-r-- 1 0 Aug 17 08:15 a
-rw-rw-r-- 1 0 Aug 17 08:15 a b
-rw-rw-r-- 1 0 Aug 17 08:15 b
-rw-rw-r-- 1 0 Aug 17 08:15 c
% find -type f -print0 | sort -z | xargs -r0 sha256sum
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ./a
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ./a b
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ./b
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ./c
Run Code Online (Sandbox Code Playgroud)
第一列中的值相同,因为文件在我的测试中没有任何内容。
| 归档时间: |
|
| 查看次数: |
34963 次 |
| 最近记录: |