コンテンツにスキップ

GNU Core Utilities/base64

出典: フリー教科書『ウィキブックス(Wikibooks)』

base64 コマンドは、データを Base64 エンコード形式で変換するためのコマンドです。Base64 は、64 種類の文字を使ってバイナリデータをテキスト形式にエンコードする方式です。主に電子メールや URL などでバイナリデータをテキスト形式に変換して送信するために使用されます。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通していますが、細かなオプションの違いがあります。

基本的な使い方

[編集]
base64 [オプション] [ファイル]

主なオプション(GNU coreutils版)

[編集]
主なオプション
オプション 説明
-d, --decode Base64 からデコードする
-i, --input 入力ファイルを指定する(標準入力の場合は省略)
-o, --output 出力ファイルを指定する
-w, --wrap=COLS 出力を COLS 列ごとに改行して表示(デフォルトは 76)
-b, --break=NUMBER 行の途中で改行を挿入しないようにする(デフォルトは 76)

[編集]

ファイルを Base64 エンコード

[編集]
base64 file.txt

file.txt の内容を Base64 エンコードして表示。

Base64 でエンコードしたデータをファイルに保存

[編集]
base64 file.txt > encoded.txt

file.txt を Base64 でエンコードして encoded.txt に保存。

Base64 からデコード

[編集]
base64 -d encoded.txt

encoded.txt の Base64 データをデコードして表示。

行ごとに改行を入れて表示

[編集]
base64 -w 40 file.txt

file.txt を Base64 でエンコードし、40文字ごとに改行を入れて表示。

FreeBSD 版との違い

[編集]

FreeBSD でも base64 コマンドは提供されていますが、GNU coreutils 版といくつか違いがあります。

主な違い:

[編集]
  1. -w(出力の改行位置を指定する)オプションのデフォルト動作が異なる
    • FreeBSD の base64 はデフォルトで 64 文字ごとに改行しますが、GNU 版では 76 文字ごとに改行します。
  2. -i-o オプションの挙動が異なる場合がある
    • FreeBSD の base64 では、標準入力と標準出力の取り扱いが GNU 版と少し異なることがあります。
  3. GNU coreutils 版を FreeBSD で使う方法
    • coreutils パッケージをインストールすると gbase64 という名前で GNU 版の base64 が使える。
    pkg install coreutils
    gbase64 file.txt  # GNU版の base64 を使用
    

詳しくは、それぞれの環境で man base64 を確認してください。