xxd:16進ダンプと逆変換が可能な便利ツール

目次
xxdコマンドの概要と基本的な使い方
Linux環境でバイナリファイルの中身を確認する場合、 hexdump や od などのコマンドが利用されます。
その中でも特に扱いやすく、 さらに逆変換(hex → バイナリ)まで可能なのが xxd コマンドです。
xxd はもともと Vim に付属するツールですが、 現在では単体コマンドとして広く利用されています。
本記事では、xxdコマンドの基本機能と、 実務でよく使うオプションを整理します。
xxdとは何か
xxd は、 ファイルや標準入力の内容を 16進数(hex)形式で表示するコマンドです。
最大の特徴は、
- 見やすい16進ダンプ表示
- 逆変換(hexから元のバイナリへ復元可能)
という2つの機能を持っている点です。
基本構文
$ xxd ファイル名
標準的な出力は以下の形式になります。
- 左側:アドレス(16進)
- 中央:16進データ
- 右側:ASCII表示
基本的な表示例
ファイル作成:
$ echo "ABC" > test.txt
表示:
$ xxd test.txt
出力例:
00000000: 4142 430a ABC.
0x41 = A 0x42 = B 0x43 = C 0x0a = 改行(LF)よく使うオプション
1. 1バイト単位で表示
$ xxd -g 1 test.txt
-g はグループサイズ指定です。 -g 1 で1バイト単位表示になります。
2. 表示バイト数を制限
$ xxd -l 64 test.txt
-l は表示バイト数指定です。
3. アドレス表示を無効化
$ xxd -p test.txt
-p はプレーン出力(連続した16進文字列)になります。
スクリプト処理やハッシュ計算時に便利です。
4. 標準入力から表示
$ echo "Hello" | xxdパイプ処理にも対応しています。
逆変換(hex → バイナリ)
xxd の最大の特徴は、 16進データから元のバイナリを復元できることです。
例:
$ xxd test.txt > dump.hex
$ xxd -r dump.hex restored.txt-r は reverse(逆変換)を意味します。
これにより、 バイナリ編集やデータ修復が可能になります。
バイナリファイル確認
$ xxd /bin/ls | head
実行ファイルの先頭(ELFヘッダー)などを確認できます。
xxdの活用例
- 文字コード確認
- 改行コード確認
- バイナリ解析
- ネットワークデータ解析
- ファイル破損調査
- バイナリ修復
hexdump・odとの違い
- od: 出力形式が柔軟
- hexdump: 標準的で見やすい形式
- xxd: 見やすい+逆変換可能
実務では、
- 簡単に確認 → xxd
- 詳細なフォーマット制御 → od
- 標準的な表示 → hexdump -C
と使い分けるのが一般的です。
まとめ
xxdコマンドは、 16進表示と逆変換が可能な便利ツールです。
バイナリ解析や文字コード確認など、 トラブルシューティングで非常に役立ちます。
Linuxの基礎コマンドとして、 od・hexdumpとあわせて理解しておくと データ構造の理解が深まります。





