# cksum Command

## Purpose

Displays the checksum and byte count of a file.

## Syntax

**cksum** [ *File *... ]

## Description

The **cksum** command
reads the files specified by the *File* parameter and calculates
a 32-bit checksum Cyclic Redundancy Check (CRC) and the byte count
for each file. If no files are specified, the **cksum** command
reads standard input. The checksum, number of bytes, and file name
are written to standard output. If standard input is used, the path
name and leading space are omitted.

The **cksum** command
can be used to compare a suspect file copied or communicated over
noisy transmission lines against an exact copy of a trusted file.
The comparison made by the **cksum** command may not be cryptographically
secure. However, it is unlikely that an accidentally damaged file
will produce the same checksum as the original file.

The **cksum** command uses a different algorithm
to calculate the 32-bit checksum CRC than the **sum** command.
The **cksum** command uses a CRC algorithm based on the Ethernet
standard frame check.

Note:Thecksumcommand is POSIX 1003.2 compliant and the checksum produced is guaranteed to be calculated the same on all POSIX 1003.2 compliant systems.

The following generating polynomial defines CRC checksum encoding:

G(x) = x^{32} +
x^{26} + x^{23} + x^{22} + x^{16} +
x^{12} + x^{11} + x^{10} + x^{8} +
x^{7} + x^{5} + x^{4} + x^{2} + x
+ 1

The following procedure mathematically defines the CRC value corresponding to a given file:

- The
*n*bits to be evaluated are considered to be the coefficients of a mod 2 polynomial M(x) of degree*n*-1. These*n*bits are the bits from the file. The most significant bit is the most significant bit of the first octet of the file. The last bit is the least significant bit of the last octet, padded with zero bits (if necessary) to achieve an integral number of octets, followed by one or more octets representing the length of the file as a binary value, least significant octet first. The smallest number of octets capable of representing this integer is used. - M(x) is multiplied by x32 (that is, shifted left 32 bits) and divided by G(x) using mod 2 division, producing a remainder R(x) of degree 31.
- The coefficients of R(x) are considered to be a 32-bit sequence.
- The bit sequence is complemented, and the result is the CRC.

## Exit Status

This command returns the following exit values:

Item | Description |
---|---|

0 |
All files were processed successfully. |

>0 |
An error occurred. |

## Examples

To display
the checksum and the size, in bytes, of `file1` and `file2`,
enter:

`cksum file1 file2`

If the checksum of the `file1` file is `3995432187` and
contains `1390` bytes, and the checksum of the `file2` file
is `3266927833` and contains `20912` bytes, the **cksum** command
displays:

```
3995432187 1390 file1
3266927833 20912 file2
```

## Files

Item | Description |
---|---|

/usr/bin/cksum |
Contains the cksum command. |