使用 `sha1sum` 检查校验和时,以文本模式和二进制模式读取有什么区别?

What is the difference between reading in text mode and binary mode, when checking checksums using `sha1sum`?

我经常计算从 Internet 下载的文件的校验和,使用 shasum 系列命令,而不注意读取模式。特别是,sha1sum 通常默认为应用程序的文本模式。

在使用 sha1sum 检查校验和时,以文本模式和二进制模式读取有什么区别?

~/Downloads$ sha1sum --help
Usage: sha1sum [OPTION]... [FILE]...
Print or check SHA1 (160-bit) checksums.

With no FILE, or when FILE is -, read standard input.

  -b, --binary         read in binary mode
  -c, --check          read SHA1 sums from the FILEs and check them
      --tag            create a BSD-style checksum
  -t, --text           read in text mode (default)
  -z, --zero           end each output line with NUL, not newline,
                       and disable file name escaping

The following five options are useful only when verifying checksums:
      --ignore-missing  don't fail or report status for missing files
      --quiet          don't print OK for each successfully verified file
      --status         don't output anything, status code shows success
      --strict         exit non-zero for improperly formatted checksum lines
  -w, --warn           warn about improperly formatted checksum lines

      --help     display this help and exit
      --version  output version information and exit

The sums are computed as described in FIPS-180-1.  When checking, the input
should be a former output of this program.  The default mode is to print a
line with checksum, a space, a character indicating input mode ('*' for binary,
' ' for text or where binary is insignificant), and name for each FILE.

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Full documentation <https://www.gnu.org/software/coreutils/sha1sum>
or available locally via: info '(coreutils) sha1sum invocation'

None.

至少根据 the difference between text and binary in md5sum 上类似问题的答案判断。

看起来标志是为了符合标准或其他什么