SUM(1) User Commands SUM(1)
sum - print checksum and block count for a file
/usr/bin/sum [-abBchHlLpPrRstTw] [-x method] [file...]
ksh93
sum [-abBchHlLpPrRstTw] [-x method] [file...]
The sum utility and ksh93 built-in command list the checksum, and for
most methods the block count, for each file argument. The standard
input is read if there are no file arguments.
The getconf(1) UNIVERSE determines the default sum method: att for
the att universe, bsd otherwise. The default for the other commands
is the command name itself. The att method is a true sum, all others
are order dependent.
Method names consist of a leading identifier and 0 or more options
separated by -.
getconf PATH_RESOLVE determines how symbolic links are handled. This
can be explicitly overridden by the --logical, --metaphysical, and
--physical options below. PATH_RESOLVE can be one of:
--logical
Follow all symbolic links.
--metaphysical
Follow command argument symbolic links, otherwise
do not follow.
--physical
Do not follow symbolic links.
The following options are supported for /usr/bin/sum:
-a
--all
List the checksum for all files. Use with --total to list both
individual and total checksums and block counts.
-b
--binary
Read files in binary mode. This is the default.
-B
--scale=scale
Block count scale (bytes per block) override for methods that
include size in the output. The default is method-specific.
-c
--check
Each file is interpreted as the output from a previous sum. If
--header or --permissions was specified in the previous sum then
the checksum method is automatically determined, otherwise
--method must be specified. The listed checksum is compared with
the current value and a warning is issued for each file that does
not match. If file was generated by --permissions, then the file
mode, user and group are also checked. Empty lines, lines
starting with #<space>, or the line # are ignored. Lines
containing no blanks are interpreted as [no]name[=value] options:
method=name
Checksum method to apply to subsequent lines.
permissions
Subsequent lines were generated with --permissions.
-h
--header
Print the checksum method as the first output line. Used with
--check and --permissions.
-l
--list
Each file is interpreted as a list of files, one per line, that
is checksummed.
-p
--permissions
If --check is not specified then list the file mode, user and
group between the checksum and path. User and group matching the
caller are output as -. If --check is specified then the mode,
user and group for each path in file are updated if necessary to
match those in file. A warning is printed on the standard error
for each changed file.
-R
--recursive
Recursively checksum the contents of directories.
-t
--total
List only the total checksum and block count of all files. --all
--total lists each checksum and the total. The total checksum and
block count may be different from the checksum and block count of
the catenation of all files due to partial blocks that may occur
when the files are treated separately.
-T
--text
Read files in text mode (for example, treat \r\n as \n).
-w
--warn
Warn about invalid --check lines. On by default; -w means
--nowarn.
-x
--method|algorithm=method
Specifies the checksum method to apply. Parenthesized method
options are readonly implementation details.
att|sys5|s5|default
The system 5 release 4 checksum. This is the default for sum
when getconf UNIVERSE is att. This is the only true sum; all
of the other methods are order dependent.
ast4|32x4|tw
The ast 128 bit PRNG hash generated by catenating 4 separate
32 bit PNRG hashes. The block count is not printed.
bsd|ucb
The BSD checksum.
crc
32 bit CRC (cyclic redundancy check).
polynomial=mask
The 32 bit crc polynomial bitmask with implicit bit 32.
The default value is 0xedb88320.
done[=number]
XOR the final crc value with number. 0xffffffff is used
if number is omitted. The option value may be omitted.
The default value is 0.
init[=number]
The initial crc value. 0xffffffff is used if number is
omitted. The option value may be omitted. The default
value is 0.
rotate
XOR each input character with the high order crc byte
(instead of the low order).
size[=number]
Include the total number of bytes in the crc. number, if
specified, is first XOR'd into the size. The option value
may be omitted. The default value is 0.
prng
32 bit PRNG (pseudo random number generator) hash.
mpy=number
The 32 bit PRNG multiplier. The default
value is 0x01000193.
add=number
The 32 bit PRNG addend. The default value is
0.
init[=number]
The PRNG initial value. 0xffffffff is used
if number is omitted. The option value may
be omitted. The default value is 0x811c9dc5.
md4|MD4
RFC1320 MD4 message digest. Cryptographically weak. The block
count is not printed. (version) md4 (solaris -lmd)
2005-07-26
md5|MD5
RFC1321 MD5 message digest. Cryptographically weak. The block
count is not printed. (version) md5 (solaris -lmd) 2005-07-26
sha1|SHA1|sha-1|SHA-1
RFC3174 / FIPS 180-1 SHA-1 secure hash algorithm 1.
Cryptographically weak. The block count is not printed.
(version) sha1 (solaris -lmd) 2005-07-26
sha256|sha-256|SHA256|SHA-256
FIPS 180-2 SHA256 secure hash algorithm. The block count is
not printed. (version) sha256 (solaris -lmd) 2005-07-26
sha384|sha-384|SHA384|SHA-384
FIPS 180-2 SHA384 secure hash algorithm. The block count is
not printed. (version) sha384 (solaris -lmd) 2005-07-26
sha512|sha-512|SHA512|SHA-512
FIPS 180-2 SHA512 secure hash algorithm. The block count is
not printed. (version) sha512 (solaris -lmd) 2005-07-26
posix|cksum|std|standard
The posix 1003.2-1992 32 bit crc checksum. This is the
default cksum(1) method. Shorthand for crc-0x04c11db7-rotate-
done-size.
zip
The zip(1) crc. Shorthand for crc-0xedb88320-init-done.
fddi
The FDDI crc. Shorthand for crc-0xedb88320-size=0xcc55cc55.
fnv|fnv1
The Fowler-Noll-Vo 32 bit PRNG hash with non-zero initializer
(FNV-1). Shorthand for prng-0x01000193-init=0x811c9dc5.
ast|strsum
The ast strsum PRNG hash. Shorthand for
prng-0x63c63cd9-add=0x9c39c33d.
-L
--logical|follow
Follow symbolic links when traversing directories. The default is
determined by getconf PATH_RESOLVE.
-H
--metaphysical
Follow command argument symbolic links, otherwise do not follow
symbolic links when traversing directories. The default is
determined by getconf PATH_RESOLVE.
-P
--physical
Do not follow symbolic links when traversing directories. The
default is determined by getconf PATH_RESOLVE.
-r
--bsd
Equivalent to --method=bsd --scale=512 for compatibility with
other sum implementations.
-s
--sysv
Equivalent to --method=sys5 for compatibility with other sum
implementations.
-S
--silent|status
No output for --check; 0 exit status means all sums matched,
non-0 means at least one sum failed to match. Ignored for
--permissions.
The following operands are supported:
file
A path name of a file. If no files are named, the standard
input is used.
See largefile(7) for the description of the behavior of sum when
encountering files greater than or equal to 2 Gbyte ( 2^31 bytes).
See environ(7) for descriptions of the following environment
variables that affect the execution of sum: LC_CTYPE, LC_MESSAGES,
and NLSPATH.
The following exit values are returned.
0
Successful completion.
>0
An error occurred.
See attributes(7) for descriptions of the following attributes:
+---------------+-----------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------+
|CSI | Enabled |
+---------------+-----------------+
cksum(1), digest(1), getconf(1), ksh93(1), wc(1), zip(1), sum(1B),
libmd(3LIB), attributes(7), environ(7), largefile(7)
Read error is indistinguishable from end of file on most devices.
Check the block count.
Portable applications should use cksum(1). The default algorithm for
this command is defined in the POSIX standard and is identical across
platforms.
sum and /usr/ucb/sum (see sum(1B)) return different checksums.
May 23, 2021 SUM(1)
NAME
sum - print checksum and block count for a file
SYNOPSIS
/usr/bin/sum [-abBchHlLpPrRstTw] [-x method] [file...]
ksh93
sum [-abBchHlLpPrRstTw] [-x method] [file...]
DESCRIPTION
The sum utility and ksh93 built-in command list the checksum, and for
most methods the block count, for each file argument. The standard
input is read if there are no file arguments.
The getconf(1) UNIVERSE determines the default sum method: att for
the att universe, bsd otherwise. The default for the other commands
is the command name itself. The att method is a true sum, all others
are order dependent.
Method names consist of a leading identifier and 0 or more options
separated by -.
getconf PATH_RESOLVE determines how symbolic links are handled. This
can be explicitly overridden by the --logical, --metaphysical, and
--physical options below. PATH_RESOLVE can be one of:
--logical
Follow all symbolic links.
--metaphysical
Follow command argument symbolic links, otherwise
do not follow.
--physical
Do not follow symbolic links.
OPTIONS
The following options are supported for /usr/bin/sum:
-a
--all
List the checksum for all files. Use with --total to list both
individual and total checksums and block counts.
-b
--binary
Read files in binary mode. This is the default.
-B
--scale=scale
Block count scale (bytes per block) override for methods that
include size in the output. The default is method-specific.
-c
--check
Each file is interpreted as the output from a previous sum. If
--header or --permissions was specified in the previous sum then
the checksum method is automatically determined, otherwise
--method must be specified. The listed checksum is compared with
the current value and a warning is issued for each file that does
not match. If file was generated by --permissions, then the file
mode, user and group are also checked. Empty lines, lines
starting with #<space>, or the line # are ignored. Lines
containing no blanks are interpreted as [no]name[=value] options:
method=name
Checksum method to apply to subsequent lines.
permissions
Subsequent lines were generated with --permissions.
-h
--header
Print the checksum method as the first output line. Used with
--check and --permissions.
-l
--list
Each file is interpreted as a list of files, one per line, that
is checksummed.
-p
--permissions
If --check is not specified then list the file mode, user and
group between the checksum and path. User and group matching the
caller are output as -. If --check is specified then the mode,
user and group for each path in file are updated if necessary to
match those in file. A warning is printed on the standard error
for each changed file.
-R
--recursive
Recursively checksum the contents of directories.
-t
--total
List only the total checksum and block count of all files. --all
--total lists each checksum and the total. The total checksum and
block count may be different from the checksum and block count of
the catenation of all files due to partial blocks that may occur
when the files are treated separately.
-T
--text
Read files in text mode (for example, treat \r\n as \n).
-w
--warn
Warn about invalid --check lines. On by default; -w means
--nowarn.
-x
--method|algorithm=method
Specifies the checksum method to apply. Parenthesized method
options are readonly implementation details.
att|sys5|s5|default
The system 5 release 4 checksum. This is the default for sum
when getconf UNIVERSE is att. This is the only true sum; all
of the other methods are order dependent.
ast4|32x4|tw
The ast 128 bit PRNG hash generated by catenating 4 separate
32 bit PNRG hashes. The block count is not printed.
bsd|ucb
The BSD checksum.
crc
32 bit CRC (cyclic redundancy check).
polynomial=mask
The 32 bit crc polynomial bitmask with implicit bit 32.
The default value is 0xedb88320.
done[=number]
XOR the final crc value with number. 0xffffffff is used
if number is omitted. The option value may be omitted.
The default value is 0.
init[=number]
The initial crc value. 0xffffffff is used if number is
omitted. The option value may be omitted. The default
value is 0.
rotate
XOR each input character with the high order crc byte
(instead of the low order).
size[=number]
Include the total number of bytes in the crc. number, if
specified, is first XOR'd into the size. The option value
may be omitted. The default value is 0.
prng
32 bit PRNG (pseudo random number generator) hash.
mpy=number
The 32 bit PRNG multiplier. The default
value is 0x01000193.
add=number
The 32 bit PRNG addend. The default value is
0.
init[=number]
The PRNG initial value. 0xffffffff is used
if number is omitted. The option value may
be omitted. The default value is 0x811c9dc5.
md4|MD4
RFC1320 MD4 message digest. Cryptographically weak. The block
count is not printed. (version) md4 (solaris -lmd)
2005-07-26
md5|MD5
RFC1321 MD5 message digest. Cryptographically weak. The block
count is not printed. (version) md5 (solaris -lmd) 2005-07-26
sha1|SHA1|sha-1|SHA-1
RFC3174 / FIPS 180-1 SHA-1 secure hash algorithm 1.
Cryptographically weak. The block count is not printed.
(version) sha1 (solaris -lmd) 2005-07-26
sha256|sha-256|SHA256|SHA-256
FIPS 180-2 SHA256 secure hash algorithm. The block count is
not printed. (version) sha256 (solaris -lmd) 2005-07-26
sha384|sha-384|SHA384|SHA-384
FIPS 180-2 SHA384 secure hash algorithm. The block count is
not printed. (version) sha384 (solaris -lmd) 2005-07-26
sha512|sha-512|SHA512|SHA-512
FIPS 180-2 SHA512 secure hash algorithm. The block count is
not printed. (version) sha512 (solaris -lmd) 2005-07-26
posix|cksum|std|standard
The posix 1003.2-1992 32 bit crc checksum. This is the
default cksum(1) method. Shorthand for crc-0x04c11db7-rotate-
done-size.
zip
The zip(1) crc. Shorthand for crc-0xedb88320-init-done.
fddi
The FDDI crc. Shorthand for crc-0xedb88320-size=0xcc55cc55.
fnv|fnv1
The Fowler-Noll-Vo 32 bit PRNG hash with non-zero initializer
(FNV-1). Shorthand for prng-0x01000193-init=0x811c9dc5.
ast|strsum
The ast strsum PRNG hash. Shorthand for
prng-0x63c63cd9-add=0x9c39c33d.
-L
--logical|follow
Follow symbolic links when traversing directories. The default is
determined by getconf PATH_RESOLVE.
-H
--metaphysical
Follow command argument symbolic links, otherwise do not follow
symbolic links when traversing directories. The default is
determined by getconf PATH_RESOLVE.
-P
--physical
Do not follow symbolic links when traversing directories. The
default is determined by getconf PATH_RESOLVE.
-r
--bsd
Equivalent to --method=bsd --scale=512 for compatibility with
other sum implementations.
-s
--sysv
Equivalent to --method=sys5 for compatibility with other sum
implementations.
-S
--silent|status
No output for --check; 0 exit status means all sums matched,
non-0 means at least one sum failed to match. Ignored for
--permissions.
OPERANDS
The following operands are supported:
file
A path name of a file. If no files are named, the standard
input is used.
USAGE
See largefile(7) for the description of the behavior of sum when
encountering files greater than or equal to 2 Gbyte ( 2^31 bytes).
ENVIRONMENT VARIABLES
See environ(7) for descriptions of the following environment
variables that affect the execution of sum: LC_CTYPE, LC_MESSAGES,
and NLSPATH.
EXIT STATUS
The following exit values are returned.
0
Successful completion.
>0
An error occurred.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+-----------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------+
|CSI | Enabled |
+---------------+-----------------+
SEE ALSO
cksum(1), digest(1), getconf(1), ksh93(1), wc(1), zip(1), sum(1B),
libmd(3LIB), attributes(7), environ(7), largefile(7)
DIAGNOSTICS
Read error is indistinguishable from end of file on most devices.
Check the block count.
NOTES
Portable applications should use cksum(1). The default algorithm for
this command is defined in the POSIX standard and is identical across
platforms.
sum and /usr/ucb/sum (see sum(1B)) return different checksums.
May 23, 2021 SUM(1)