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ファイルの一覧