Perl によるディレクトリ移動、パーミション変更、ファイル一覧の表示

ディレクトリ

Perl ではディレクトリを操作するための関数が多く用意されている。ディレクトリの作成および削除、ディレクトリの移動、ディレクトリ内のファイル一覧の取得などが行える。

ディレクトリの作成

ディレクトリを作成するには mkdir 関数を利用する。ディレクトリを作成するときに、パーミションも合わせて指定できる。次のコマンドは、 /home/user/tmp_dir ディレクトリが存在するかどうかを確認し、なければディレクトリを作成する例である。

my $path = '/home/user/tmp_dir';

if( -d $path ){
   print "The directory is existed.\n";
}else{
   mkdir 0755, $path;
}

ディレクトリの削除

ディレクトリにファイルが残っている場合、ディレクトリを削除することはできない。そのため、ディレクトリを削除する前に、ディレクトリ内にあるすべてのファイルを削除しておく必要がある。

unlink(glob("$path/*"));
rmdir $path;

ディレクトリのパーミション変更

パーミションの変更は chmod 関数を利用する。

my $dir = './tmpl_dir';
chmod 0777, $dir

ファイル一覧の取得

ディレクトリにあるファイル一覧を取得する場合は、opendirreaddir を利用する。

pendir(my $dh, "./");
foreach(my $f = readdir($dh)){
    print "$f";
}
closedir($dh);

glob を利用することで、特定の拡張子を持ったファイルだけを取得することも可能である。

my @pdb_files = glob "*.pdb";