このページの内容

2.6 サイズ

テスト: -size n[bckwMG]

ファイルが使用する容量を単位ごとに切り上げた結果が、n単位になる場合に真になります。既定の単位は512バイトのブロックですが、nに1文字の接尾辞を付けて変更できます。

b

512バイトのブロック。1024バイトにはなりません。

c

バイト

w

2バイトのワード

k

キビバイト。KiB、1024バイト単位。

M

メビバイト。MiB、1024 × 1024 = 1048576バイト単位。

G

ギビバイト。GiB、1024 × 1024 × 1024 = 1073741824バイト単位。

接尾辞「b」では、常に1ブロックを512バイトとして扱います。環境変数POSIXLY_CORRECTの設定の有無や値には影響されません。この動作は「-ls」アクションと異なります。1024バイト単位を使いたい場合は、代わりに接尾辞「k」を使ってください。

数値には「+」または「-」を前置できます。プラス記号は、ファイルが少なくともn単位の記憶領域を使う場合にテストが成功することを示します。これはよく使われる指定です。マイナス記号は、ファイルがn単位未満の記憶領域を使う場合に成功することを示します。つまり、ちょうどn単位のサイズには一致しません。「=」の接頭辞はありません。等しい値に一致するのが既定だからです。

重要

サイズは次の単位へ切り上げられることに注意してください。そのため、「-size -1M」は「-size -1048576c」と同等ではありません。前者は空のファイルだけに一致し、後者は0〜1,048,575バイトのファイルに一致します。

サイズは、lstatまたはstatシステムコールが設定するstruct statのst_sizeメンバーを、上記のように切り上げたものです。つまり、「ls -l」の結果と整合します。このスパースファイルの扱いは、「-printf」述語の書式指定子「%k」「%b」が出力するものとは異なります。

テスト: -empty

ファイルが空で、通常のファイルまたはディレクトリである場合に真になります。削除候補を判断するのに役立つ場合があります。「-depth」(ディレクトリを参照)や「-delete」(単一のファイルを参照)と組み合わせると便利です。