0バイトのファイルを検索するLinuxコマンドと検索する目的
何万件もの大量のファイルを作成するプログラムを自作した時の動作テスト時、そのプログラムをプログラムが長年稼働した古い環境から新しい環境に移植する時(システムリプレース作業時)、システム障害発生時の調査時、動作確認のために、中身が空っぽのファイル(0バイトのファイル)を探したい時がある。
CentOS 6などのLinuxでは、0バイト(ゼロバイト)のファイル以下のコマンドで探すことができる。
《/var/testディレクトリ配下にあるゼロバイトのファイルを探すコマンド例》
cd /var/test
find ./ -size 0
このコマンドで、カレントディレクトリ配下のサブディレクトリも含めて0バイトのファイルを探すことができる。
さて、何故ゼロバイトのファイルを探す必要があるのか。
それは、ファイルの中には日本語や英語などの文字情報(テキスト)が書かれていたり、画像などのように文字では表せないバイナリデータといった情報が入っているのが普通であることが多いからで、ファイルの中に何も情報が書き込まれていないと普通ではないことが多いからだ。
中身が空っぽのファイルは、意図して作ったのでないのであれば、ファイルの中身を書き込むプログラムに不具合があったり、ファイルへの書き込み権限がなかったり、ファイルを保存しているシステム内のディスク空き容量が不足している、などの原因で空っぽになってしまう。
動作テスト時などでは、普通ではないファイルを探すことで、大量のファイルに埋没してしまって、目視ではなかなか気づかないファイルの不具合を検知できる。
自作したファイル出力プログラムの動作テスト時、システムリプレース時、システム障害発生時に、0バイトのファイルがないかどうかを探すと、短時間で、不具合発見につながる場合がある。
限られた時間と限られた予算で問題発見をしないといけない場合に、0バイトのファイルを探すことで問題の早期発見につながるということを覚えておきたい。
(ということを昨日のシステムリプレース時に思い知った...。)
まんがでわかるLinux シス管系女子 2(日経BP Next ICT選書)
まんがでわかるLinux シス管系女子(日経BP Next ICT選書)