KDOC 454: シェルでバイナリが文字列表示されるのはなぜか?

この文書のステータス

  • 作成
    • 2025-10-22 貴島
  • レビュー
    • 2025-10-22 貴島

概要

xxdでASCIIコードを渡して文字列表示できる。

echo -n "6865 6c6c 6f0a" | xxd -r -p
hello
  • xxd はバイナリ <–> 16進数を変換表示するコマンド
  • -r オプションで、16進数表示からバイナリ表示に切り替わる

ここで生まれる疑問は、 -r オプションによって16進数表示から「バイナリ」表示に切り替わっているはずだが、アルファベットが表示されていることだ。

仮定は、「ASCIIで解釈可能なバイナリは端末上で表示すると解釈されてアルファベット表示される」だ。

printf '\x61' > a.bin
cat a.bin
rm a.bin # 片付け
a

考えてみると、プレーンテキストだろうと何でもバイナリで保存されている。端末が解釈してアルファベット表示するのは自然である。

さらに直感的に確認する方法か公式仕様を知りたい。

関連

なし。