Linux, コマンド · 1 min read · Sep 20, 2025

初心者のためのLinux md5sumコマンドの説明 (5つの例)

ファイルをダウンロードする際、特にウェブサイトからダウンロードしたファイルや、トレントプロトコルまたはFTPサーバーを介してインストールするファイルについては、ダウンロードが有効であることを確認することが重要です。ウェブサイトは、ダウンロードが正しく完了したことを確認するために、各ファイルのハッシュ値を表示することがよくあります。この記事では、ダウンロードを検証するために使用できるmd5sumコマンドについて説明します。sha1sum、sha256sum、sha512sumの3つの他のユーティリティもmd5sumと同じように機能します。このチュートリアルは、すべての主要なLinuxディストリビューションと互換性があります。

Linux md5sumコマンド

md5sumコマンドは、MD5アルゴリズムを使用して、指定されたファイルの32文字(128ビット)のチェックサムを出力します。以下は、このコマンドラインツールのコマンド構文です:

md5sum [OPTION]... [FILE]...

そして、md5sumのmanページは次のように説明しています:

MD5(128ビット)チェックサムを出力または確認します。

以下のQ&Aスタイルの例は、md5sumの基本的な使用法をさらに良く理解するのに役立ちます。

注意:例では、file1.txt、file2.txt、file3.txtという3つのファイルを入力ファイルとして使用します。各ファイルのテキストは以下に示されています。

file1.txt:

hi
hello
how are you
thanks.

file2.txt:

hi
hello to you
I am fine
Your welcome!

file3.txt:

hallo
Guten Tag
Wie geht es dir
Danke.

Q1. ハッシュ値を表示するには?

オプションなしでコマンドを使用して、ハッシュ値とファイル名を表示します。

md5sum file1.txt

このコマンドが私たちのシステムで生成した出力は次のとおりです:

[Documents]$ md5sum file1.txt
1ff38cc592c4c5d0c8e3ca38be8f1eb1  file1.txt
[Documents]$

出力は、–tagオプションを使用してBSDスタイルの形式でも表示できます。

md5sum --tag file1.txt
[Documents]$ md5sum --tag file1.txt
MD5 (file1.txt) = 1ff38cc592c4c5d0c8e3ca38be8f1eb1
[Documents]$

Q2. 複数のファイルを一度に検証するには?

md5sumコマンドは、一度に複数のファイルを検証できます。file2.txtとfile3.txtを追加して、その機能を示します。

ハッシュをファイルに書き込むと、そのファイルを使用してファイルが変更されていないかを確認できます。ここでは、ファイルのハッシュをファイルhashesに書き込み、それを使用してファイルが変更されていないことを検証します。

md5sum file1.txt file2.txt file3.txt > hashes  
md5sum --check hashes
[Documents]$ md5sum file1.txt file2.txt file3.txt > hashes
[Documents]$ md5sum --check hashes
file1.txt: OK
file2.txt: OK
file3.txt: OK
[Documents]$ 

次に、file3.txtを変更し、ファイルの末尾に感嘆符を1つ追加して、コマンドを再実行します。

echo "!" >> file3.txt  
md5sum --check hashes
[Documents]$ md5sum --check hashes
file1.txt: OK
file2.txt: OK
file3.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
[Documents]$ 

file3.txtが変更されたことがわかります。

Q3. 変更されたファイルのみを表示するには?

チェックするファイルが多い場合、変更されたファイルのみを表示したい場合があります。”–quiet”オプションを使用すると、md5sumは変更されたファイルのみをリストします。

md5sum --quiet --check hashes
[Documents]$ md5sum --quiet --check hashes
file3.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
[Documents]$

Q4. スクリプトで変更を検出するには?

md5sumをスクリプトで使用したい場合があります。”–status”オプションを使用すると、md5sumは出力を表示しません。代わりに、ステータスコードは変更がない場合は0を返し、ファイルが一致しない場合は1を返します。以下のスクリプトhashes.shは、ファイルが変更されたため、ステータスコードで1を返します。スクリプトファイルは以下の通りです:

sh hashes.sh
hashes.sh:
#!/bin/bash
md5sum --status --check hashes
Result=$?
echo "File check status is: $Result"
exit $Result

[Documents]$ sh hashes.sh
File check status is: 1
[lion@ornatecandy Documents]$ 

Q5. 無効なハッシュ値を特定するには?

md5sumは、ファイルを比較する際に無効なハッシュがあるかどうかを知らせてくれます。ハッシュ値が不正確な場合に警告するには、–warnオプションを使用できます。この最後の例では、sedを使用して3行目の先頭に余分な文字を挿入します。これにより、ファイルhashesのハッシュ値が変更され、無効になります。

sed -i '3s/.*/a&/' hashes  
md5sum --warn --check hashes

これにより、3行目に無効なハッシュがあることが示されます。

[Documents]$ sed -i '3s/.*/a&/' hashes
[Documents]$ md5sum --warn --check hashes
file1.txt: OK
file2.txt: OK
md5sum: hashes: 3: improperly formatted MD5 checksum line
md5sum: WARNING: 1 line is improperly formatted
[Documents]$

結論

md5sumは、元のファイルから変更されたかどうかを迅速に検証できるシンプルなコマンドです。md5sumに関する詳細は、そのmanページを参照してください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。