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

初心者のためのLinux sizeコマンドチュートリアル(6つの例)

ご存知の方もいらっしゃるかもしれませんが、Linuxのオブジェクトまたは実行可能ファイルは、いくつかのセクション(テキストやデータなど)で構成されています。各セクションのサイズを知りたい場合、sizeと呼ばれるコマンドラインユーティリティがあり、この情報を提供します。このチュートリアルでは、いくつかのわかりやすい例を使ってこのツールの基本を説明します。

ただし、その前に、この記事で言及されているすべての例は、Ubuntu 16.04LTSでテストされています。

Linux sizeコマンド

sizeコマンドは、基本的に入力オブジェクトファイルのセクションサイズと合計サイズをリストします。コマンドの構文は次のとおりです:

size [-A|-B|--format=compatibility]  
            [--help]  
            [-d|-o|-x|--radix=number]  
            [--common]  
            [-t|--totals]  
            [--target=bfdname] [-V|--version]  
            [objfile...]

そして、manページはこのユーティリティを次のように説明しています:

GNU sizeユーティリティは、引数リスト内の各オブジェクトまたはアーカイブファイルobjfileのセクションサイズと合計サイズをリストします。デフォルトでは、各オブジェクトファイルまたはアーカイブ内の各モジュールに対して1行の出力が生成されます。

objfile...は、調べるオブジェクトファイルです。指定されていない場合、ファイル"a.out"が使用されます。

以下は、sizeコマンドの動作をよりよく理解するためのQ&Aスタイルの例です。

Q1. sizeコマンドの使い方は?

sizeの基本的な使い方は非常にシンプルです。ツールに入力としてオブジェクト/実行可能ファイル名を渡すだけです。以下はその例です:

size apl

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

最初の3つのエントリはテキスト、データ、bssセクションのもので、それぞれのサイズが表示されています。次に、10進数と16進数形式の合計が続きます。最後のエントリはファイル名です。

Q2. 異なる出力形式に切り替えるには?

sizeのデフォルト出力形式は、manページによれば、バークレーの形式に似ています。ただし、希望する場合は、System Vの規約にも切り替えることができます。そのためには、–formatオプションをSysVという値で使用する必要があります。

size apl --format=SysV

この場合の出力は次のとおりです:

異なる出力形式に切り替える方法

Q3. 異なるサイズ単位に切り替えるには?

デフォルトでは、セクションのサイズは10進数で表示されます。ただし、希望する場合は、この情報を8進数や16進数でも取得できます。そのためには、-oおよび-xコマンドラインオプションを使用します。

manページはこれらのオプションについて次のように述べています:

-d  
-o  
-x  
--radix=number  

これらのオプションのいずれかを使用することで、各セクションのサイズを10進数(-dまたは--radix=10)、8進数(-oまたは--radix=8)、または16進数(-xまたは--radix=16)で表示するかを制御できます。--radix=numberでは、3つの値(8、10、16)のみがサポートされています。合計サイズは常に2つの基数で表示されます。-dまたは-x出力の場合は10進数と16進数、-oを使用している場合は8進数と16進数です。

Q4. sizeコマンドで全オブジェクトファイルの合計を表示するには?

複数のファイルのセクションサイズを一度に調べるためにsizeを使用している場合、ツールにすべての列の合計を提供させることもできます。この機能は、-tコマンドラインオプションを使用して有効にできます。

size -t [file1] [file2] ...

以下のスクリーンショットは、このコマンドラインオプションの動作を示しています:

出力の最後の行は、-tコマンドラインオプションによって追加されています。

Q5. sizeが各ファイルの共通シンボルの合計サイズを表示するようにするには?

複数の入力ファイルでsizeコマンドを実行している場合、コマンドに各ファイルの共通シンボルを表示させたい場合は、–commonコマンドラインオプションを使用できます。

size --common [file1] [file2] ...

バークレー形式を使用している場合、これらはbssサイズに含まれることも言及する価値があります。

Q6. 他に利用可能なコマンドラインオプションは?

これまでに説明したものに加えて、sizeは-v(バージョン情報用)や-h(適用可能な引数とオプションの概要用)などの一般的なコマンドラインオプションも提供しています。

他に利用可能なコマンドラインオプションは?

さらに、sizeがファイルからコマンドラインオプションを読み取ることもできます。これは、@fileオプションを使用して行うことができます。このオプションに関連する詳細は次のとおりです:

読み取られたオプションは、元の@fileオプションの代わりに挿入されます。ファイルが存在しない場合、または読み取れない場合、そのオプションは文字通り扱われ、削除されません。ファイル内のオプションは空白で区切られています。空白文字は、オプション全体をシングルまたはダブルクォートで囲むことでオプションに含めることができます。任意の文字(バックスラッシュを含む)は、含める文字の前にバックスラッシュを付けることで含めることができます。ファイル自体に追加の@fileオプションが含まれている場合、そのようなオプションは再帰的に処理されます。

結論

一つ明らかなことは、sizeコマンドは誰にでも向いているわけではないということです。これは、Linuxのオブジェクト/実行可能ファイルの構造を扱う人々のために設計されています。したがって、対象読者の一員である場合は、ここで説明したオプションを練習し、日常的にこのツールを使用できるようにしてください。sizeに関する詳細情報は、そのmanページを参照してください。

Share: X/Twitter LinkedIn

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

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