Perlのファイルテスト演算子と test コマンド

Perlのファイルテスト演算子を使ってファイルの状態を調べる

Perlでは「ファイルテスト演算子」と呼ばれる演算子を使用することで、ファイルやディレクトリなどのオブジェクトの状態を調べることができます。

Perlには例えば次のようなファイルテスト演算子があります。

  • -e : ファイルが存在するかどうかを調べる。
  • -f: ファイルが通常のファイルであるかどうかを調べる
  • -d : ファイルがディレクトリであるかどうかを調べる。

Perlのファイルテスト演算子には他にもたくさんあります。その他のファイルテスト演算子は公式のドキュメントを参照してください。

Perlのファイルテスト演算子は次のように使用します。

if (-e "/path/to/file") {
    print "ファイルが存在します\n";
}

if (-f "/path/to/file") {
    print "ファイルは通常のファイルです\n";
}

if (-d "/path/to/directory") {
    print "ファイルはディレクトリです\n";
}

ファイルテスト演算子 -s を使ってファイルサイズを取得する

-s というファイルテスト演算子を使用することで、ファイルのサイズをバイト単位で取得することができます。

使用方法は次のようになります。

my $size = -s "/path/to/file";
print "ファイルサイズ: $size バイト\n";

test コマンド

ところでLinuxmacOSでは testという、シェルスクリプトで使われるコマンドがあります。 testコマンドは指定した式を評価し、真偽値を返します。

if test -e "/path/to/file"; then
    echo "ファイルが存在します"
else
    echo "ファイルが存在しません"
fi

testコマンドはシェルスクリプトで真偽値をテストするときや条件分岐をする際に使われます。

Perlのファイルテスト演算子と test コマンド

Perlのファイルテスト演算子Linuxの「test」コマンドは、どちらもファイルやディレクトリなどの状態を取得するためのものです。

-e -d -f の意味など、共通するところもあります。

一方で Perl-s はファイルが存在するときはそのファイルのバイト数を返すのに対して、test -s コマンドが返すのは真偽値であるというような違いもあります。

参考