How to use the command md5sum (with examples)
The md5sum
command is used to calculate MD5 cryptographic checksums. It is commonly used to verify file integrity by comparing the checksums of files before and after transfer or storage. The MD5 checksum is a 128-bit hash value that is unique to each file. By comparing the checksums, you can ensure that the files have not been tampered with or corrupted.
Use case 1: Calculate the MD5 checksum for one or more files
Code:
md5sum path/to/file1 path/to/file2 ...
Motivation: Calculating the MD5 checksum allows you to compare the checksums of files and verify their integrity. This is particularly useful when transferring files over a network or storing them for long periods of time.
Explanation: The md5sum
command is followed by the paths to the files for which you want to calculate the checksum. You can specify multiple files by separating them with spaces.
Example output:
85d155dbcdd852c5a8db4ccb197c5208 path/to/file1
2d0dd8dd41ff966a7df7d2b8e9b573e4 path/to/file2
Use case 2: Calculate and save the list of MD5 checksums to a file
Code:
md5sum path/to/file1 path/to/file2 ... > path/to/file.md5
Motivation: Saving the list of MD5 checksums to a file allows you to easily compare the checksums at a later time or share them with others for verification purposes.
Explanation: In this case, the output of the md5sum
command is redirected to a file using the >
operator. The file path is specified as path/to/file.md5
.
Example output: No output will be displayed on the terminal, as the checksums are redirected to the specified file.
Use case 3: Calculate an MD5 checksum from stdin
Code:
command | md5sum
Motivation: Calculating an MD5 checksum from stdin allows you to generate a checksum for data that is streamed through a command pipeline.
Explanation: In this case, the output of a command is piped (|
) to the md5sum
command. The data from stdin is used to calculate the MD5 checksum.
Example output:
6900775ebe9d9ff095aba1e0c9e45186 -
Use case 4: Read a file of MD5 sums and filenames and verify all files have matching checksums
Code:
md5sum --check path/to/file.md5
Motivation: Verifying the integrity of files by comparing their checksums to a list of known sums allows you to ensure that files have not been altered or corrupted.
Explanation: The --check
option is used to perform the verification. The path to the file containing the MD5 sums is specified as path/to/file.md5
. The file should contain lines in the format <md5sum> <filename>
. The md5sum
command reads the file and checks each file against the corresponding checksum.
Example output:
path/to/file1: OK
path/to/file2: OK
Use case 5: Only show a message for missing files or when verification fails
Code:
md5sum --check --quiet path/to/file.md5
Motivation: When verifying a large number of files, it can be helpful to only see output for files that have issues, such as missing files or when the verification fails.
Explanation: The --quiet
option is used to suppress the output for files that have matching checksums. Only files with issues will be displayed.
Example output:
path/to/file1: OK
path/to/file2: FAILED
Use case 6: Only show a message when verification fails, ignoring missing files
Code:
md5sum --ignore-missing --check --quiet path/to/file.md5
Motivation: In cases where files might be missing, but you still want to verify the checksums of the existing files, you can use the --ignore-missing
option to skip missing files and only see output for files that have failed verification.
Explanation: The --ignore-missing
option tells the md5sum
command to skip missing files. The --quiet
option is used to suppress the output for files that have matching checksums. Only files that have failed verification will be displayed.
Example output:
path/to/file2: FAILED
Conclusion:
The md5sum
command is a versatile tool for calculating and verifying MD5 checksums of files. Whether you need to calculate the checksum for individual files, create a file of checksums, or verify the integrity of files, the md5sum
command provides various options to meet your needs.