Perlのファイルテスト演算子を使ってファイルの状態を調べる
Perlでは「ファイルテスト演算子」と呼ばれる演算子を使用することで、ファイルやディレクトリなどのオブジェクトの状態を調べることができます。
Perlには例えば次のようなファイルテスト演算子があります。
-e
: ファイルが存在するかどうかを調べる。-f
: ファイルが通常のファイルであるかどうかを調べる-d
: ファイルがディレクトリであるかどうかを調べる。
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 コマンド
ところでLinuxやmacOSでは 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
コマンドが返すのは真偽値であるというような違いもあります。