| sum | |
|---|---|
| Original author | Ken Thompson |
| Developer | AT&T Bell Laboratories |
| Initial release | November 3, 1971; 54 years ago (1971-11-03) |
| Operating system | Unix,Unix-like,Inferno |
| Platform | Cross-platform |
| Type | Command |
| License | coreutils:GPLv3+ |
sum is a legacy utility available on someUnix andUnix-likeoperating systems. This utility outputs a 16-bitchecksum of each argumentfile, as well as the number ofblocks they take on disk.[1] Two different checksum algorithms are in use. POSIX abandonedsum in favor ofcksum.
Thesum program is generally only useful for historical interest. It is not part of POSIX. Two algorithms are typically available: aBSD checksum and aSYSV checksum. Both are weaker than the already weak 32-bit CRC used bycksum.[2]
Thedefault algorithm on FreeBSD and GNU implementations is the BSD checksum. Switching between the two algorithms is done via command line options.[2][1]
The two commonly used algorithms are as follows.
The BSD sum, -r in GNU sum and -o1 in FreeBSD cksum:
The above algorithm appeared inSeventh Edition Unix.
The System V sum, -s in GNU sum and -o2 in FreeBSD cksum:
Thesum utility is invoked from thecommand line according to the following syntax:
sum [OPTION]... [FILE]...
with the possible option parameters being:
When no file parameter is given, or when FILE is-, thestandard input is used as input file.
Example of use:
$echoHello>testfile$sumtestfile36978 1
Example of -s use in GNU sum:
$echoHello>testfile$sum-stestfile510 1 testfile
Example of using standard input, -r and printf to avoid newline:
$printfHello|sum-r08401 1
sum(1) – Version 7 Unix Programmer'sManualsum(1) – manual pages fromGNUcoreutilssum(1) – FreeBSD General CommandsManual – states the sum algorithms in options -o1 and -o2 to cksumsum(1) – Linux UserManual – User Commands from Manned.orgsum(1) – Solaris 11.4 User Commands ReferenceManual