tarファイルの一覧
Archive::Tarモジュールを使います。
use strict;
use warnings;
use Archive::Tar;
use POSIX 'strftime';
my $tar_file = 'test.tar'; # tarファイル名
my $ar = Archive::Tar->new;
$ar->read($tar_file) or die; # ファイル読み込み
# ファイル一覧の表示
my @files = $ar->get_files();
foreach my $file (@files) {
printf "%o %s/%s %7d %s %s\n",
$file->{mode},
$file->{uname},
$file->{gname},
$file->{size},
strftime('%Y-%m-%d %H:%M:%S', localtime $file->{mtime}),
$file->{name};
}
上記のget_files()ではファイルの中身まで取得します。特定の項目だけ取得する場合は以下のようにlist_files()でも取得できます。
# ファイル一覧の表示
my @files = $ar->list_files([qw(name size mtime mode uname gname)]);
foreach my $file (@files) {
printf "%o %s/%s %7d %s %s\n",
$file->{mode},
$file->{uname},
$file->{gname},
$file->{size},
strftime('%Y-%m-%d %H:%M:%S', localtime $file->{mtime}),
$file->{name};
}
関連項目
・tarファイルの作成・tarファイルの展開
・tar.gzファイルの展開
・zipファイルの一覧
