カテゴリ: Linuxコマンド集 更新日: 2026/03/30

tail -cオプションの使い方を完全解説!Linuxで末尾のバイト数を指定して表示しよう

tail -cオプション|指定したバイト数だけ末尾を表示する
tail -cオプション|指定したバイト数だけ末尾を表示する

先生と生徒の会話形式で理解しよう

生徒

「Linuxでファイルの末尾だけ見たいんですけど、行じゃなくて文字数で指定できますか?」

先生

「はい、その場合はtailコマンドの-cオプションを使えば、指定したバイト数だけ末尾から表示できますよ。」

生徒

「バイト数って行数とどう違うんですか?」

先生

「行数は改行単位ですが、バイト数は文字の大きさで数えます。詳しく説明していきましょう。」

1. tail -cオプションとは?

1. tail -cオプションとは?
1. tail -cオプションとは?

tail -cオプションは、Linuxでファイルの末尾から指定したバイト数だけを表示するためのオプションです。バイト(byte)とは、コンピュータで使われるデータの単位のことで、1バイトはアルファベット1文字や数字1文字に相当します。

たとえば「Hello」という文字列は、半角英字なので5バイトです。日本語の「こんにちは」は1文字が2〜3バイトになることが多いため注意が必要です。

2. tail -cの基本的な使い方

2. tail -cの基本的な使い方
2. tail -cの基本的な使い方

tail -cの基本構文は以下の通りです。


tail -c バイト数 ファイル名

たとえば、ファイルmessage.txtの末尾から10バイトだけ表示したい場合は、以下のように入力します。


tail -c 10 message.txt
is text!

これは、ファイルの最後の10バイト「is text!」が出力された例です。

3. バイト数と文字数の違いに注意しよう

3. バイト数と文字数の違いに注意しよう
3. バイト数と文字数の違いに注意しよう

日本語は1文字が2バイト以上になることがあるため、バイト数と文字数は必ずしも一致しません。たとえば、次のようなテキストを考えてみましょう。

「こんにちは世界」

この文章は7文字ですが、UTF-8という文字コードでは1文字あたり3バイトとして扱われるため、全体で21バイトになります。

つまり、-c 9と指定しても、ちょうど3文字が表示されるとは限らないということです。

4. ファイルサイズが小さい場合

4. ファイルサイズが小さい場合
4. ファイルサイズが小さい場合

もしファイル全体のバイト数より多い値を指定しても、エラーにはなりません。


tail -c 10000 small.txt
ファイルのすべての内容が表示されます

このように、存在するバイト数すべてが表示されるだけなので、安心して使えます。

5. head -cとの違い

5. head -cとの違い
5. head -cとの違い

tail -cは「ファイルの最後から○バイト」を表示するのに対し、head -cは「最初から○バイト」を表示します。両者はペアで覚えておくと便利です。


head -c 10 message.txt
Hello thi

このように、先頭の10バイトが出力されます。

6. tail -nとtail -cの違い

6. tail -nとtail -cの違い
6. tail -nとtail -cの違い

tail -n「行数」で指定するのに対し、tail -c「バイト数」で指定します。用途によって使い分けましょう。

  • ログファイルの最新の10行を確認したい → tail -n 10
  • ファイルの末尾10バイトだけ確認したい → tail -c 10

7. tail -fと-cの組み合わせは非対応

7. tail -fと-cの組み合わせは非対応
7. tail -fと-cの組み合わせは非対応

tail -fはリアルタイム監視ですが、-cとは一緒に使えません。

エラーメッセージが表示されるか、正しく動作しないことがあるので、リアルタイム監視には-nを使いましょう。

8. 他コマンドとの連携例:ddコマンドとの違い

8. 他コマンドとの連携例:ddコマンドとの違い
8. 他コマンドとの連携例:ddコマンドとの違い

ddコマンドもバイト単位での読み取りが可能ですが、tail -cのほうが単純な末尾表示には向いています。


dd if=message.txt bs=1 skip=30
tail -c 30 message.txt

上記はいずれもファイルの後半部分を表示する例ですが、tailの方が直感的で簡単です。

まとめ

まとめ
まとめ

今回の記事では、Linux環境でファイルの末尾から特定のデータを抽出する際に非常に便利なtail -cオプションについて詳しく解説しました。通常、tailコマンドといえば行数を指定する「-n」オプションが一般的ですが、バイナリファイルの解析や、厳密なデータ容量に基づいた切り出しが必要なシーンでは、この「-c(バイト数指定)」オプションが欠かせません。

tail -cオプションの重要ポイント

まず理解しておきたいのは、Linuxにおける「1バイト」の概念です。半角英数字であれば1文字1バイトとして計算されますが、日本語(マルチバイト文字)を扱う場合は注意が必要です。現在の主流であるUTF-8エンコードでは、日本語1文字は基本的に3バイトを消費します。そのため、tail -c 3と実行しても、日本語が1文字正しく表示されるとは限らず、文字化けの原因になることもあります。

実践的なコマンド例と実行結果

実際に、テキストファイルを作成してバイト指定での出力を確認してみましょう。まずは一般ユーザー権限で、10バイト分を指定して表示する例です。


echo "abcdefghijk" > test.txt
tail -c 5 test.txt
ghijk

このように、末尾から5文字(5バイト)が正確に抜き出されています。次に、システムログなどの重要なファイルを管理者が確認するシーンを想定し、ルート権限での実行例を見てみましょう。


tail -c 20 /var/log/alternatives.log
update-alternatives

ルートユーザー(root)で実行する場合も、基本操作は変わりませんが、パーミッションの厳しいファイルを扱う際には必須の操作となります。

tail -nとの使い分けと応用

日々のサーバー運用やプログラミング作業において、ログの最新10行を追いたい場合はtail -n 10を使いますが、「通信パケットの末尾データだけをバイナリとして抜き出したい」といった特殊な用途ではtail -cが真価を発揮します。また、head -cと組み合わせることで、ファイルの中間部分をバイト単位で切り出すといった高度な操作も可能になります。

Linuxコマンドは、一つのコマンドでもオプション一つでその役割が大きく広がります。今回学んだバイト単位の指定方法をマスターすることで、テキストデータだけでなく、画像ファイルや実行ファイルといった「バイナリデータ」の扱いにも強いエンジニアへの一歩を踏み出せるはずです。

先生と生徒の振り返り会話

生徒

「先生、ありがとうございました!tail -cオプションを使うと、行単位じゃなくてデータ量そのもので末尾を確認できるんですね。でも、日本語だと少し計算が難しそうです…。」

先生

「そうですね。日本語の場合は1文字が3バイトになることが多いので、半角英数字と同じ感覚で指定すると文字の途中で切れてしまうことがあります。基本的にはログの末尾や、アルファベット主体の設定ファイルを確認するのに向いていますよ。」

生徒

「なるほど。もしファイルのサイズが指定したバイト数より小さかったらどうなるんですか?さっき試すのを忘れてしまって。」

先生

「いい質問ですね。その場合はエラーにならず、ファイルの中身が最初からすべて表示されます。例えば3バイトしかないファイルに対してtail -c 10としても、その3バイト分が表示されるだけなので安心してください。実際に試してみましょうか。」


echo "abc" > short.txt
tail -c 10 short.txt
abc

生徒

「本当だ!エラーにならないのは使いやすいですね。ところで、先生。ルート権限でしか見られないファイルの末尾をバイト指定で見る時は、sudoをつければいいんですよね?」

先生

「その通りです。管理者として作業する時は、プロンプトが『#』に変わっていることを意識しながら操作してください。システムファイルをバイト単位で書き換えるような作業の前には、こうしてtailで末尾の整合性を確認する癖をつけるとミスが減りますよ。」

生徒

「勉強になります。行数の-nとバイト数の-c、用途に合わせてしっかり使い分けていけるように練習します!」

先生

「素晴らしい意気込みですね。Linuxには他にも便利なオプションがたくさんあるので、一つずつ自分のものにしていきましょう。次はファイルの先頭を扱うheadコマンドのバイト指定についても触れてみると面白いですよ。」

カテゴリの一覧へ
新着記事
New1
テキスト・データ処理
tail -cオプションの使い方を完全解説!Linuxで末尾のバイト数を指定して表示しよう
New2
テキスト・データ処理
head -cオプションの使い方を完全解説!初心者でもわかるバイト数指定表示の基本
New3
プロセス管理
Linuxのプロセスとは?初心者でもわかる基本概念と仕組みをやさしく解説
New4
テキスト・データ処理
head -nオプションの使い方を完全解説!Linuxで先頭の行数を指定して表示する方法
人気記事
No.1
Java&Spring記事人気No1
Linuxコマンドの基本
Linuxコマンドとは?基本の考え方とシェルとの関係を初心者向けに徹底解説
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
pwdコマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!
No.3
Java&Spring記事人気No3
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本