概要
PerlのArchive::Zip
やArchive::Tar
モジュールを試用するためのワンライナー。これらのモジュールの動作や出力確認をしたい時用にメモしてます。
詳細
Archive::Zip
zipファイルの作成
./data
ディレクトリを圧縮したtemp.zip
ファイルを作成する。
perl -MArchive::Zip -e "$zip=Archive::Zip->new; $zip->addTree('./data','data');$zip->writeToFileNamed('temp.zip')"
メソッドaddTree
に渡している第一引数./data
は圧縮対象ディレクトリ。第二引数data
は、圧縮ファイル内でのこのディレクトリの名称。同じにしておけば混乱が少なそう。あえて変えることもできる(日次バックアップとして"元のディレクトリ名+年月日"とするなど)。
zipファイルの内容確認
temp.zip
ファイルの内容を表示する。
perl -MArchive::Zip -e "$zip=Archive::Zip->new('./temp.zip');print qq($_\n) foreach ($zip->memberNames)"
zipファイルの展開
temp.zip
ファイルを展開する。
perl -MArchive::Zip -e "$zip=Archive::Zip->new('./temp.zip'; $zip->extractTree();"
展開対象を指定したいときはextractMember
メソッド。
perl -MArchive::Zip -e "$zip=Archive::Zip->new('./temp.zip');$zip->extractMember($_) foreach ($zip->memberNames)"
Archive::Tar
tarファイルの作成
./temp.txt
ファイルを格納したtemp.tar
ファイルを作成する。add_files
には、一度に複数のファイルを指定できる。
perl -MArchive::Tar -e "$tar=Archive::Tar->new; $tar->add_files('temp.txt'); $tar->write('temp.tar')"
./temp.txt
ディレクトリを格納、gzip圧縮したtemp.tgz
ファイルを作成する。
perl -MArchive::Tar -e "$tar=Archive::Tar->new; $tar->add_files('temp.txt'); $tar->write('temp.tgz', COMPRESS_GZIP )"
オブジェクトを生成せずクラスメソッドを使うことも可能。第三引数以降で、複数のファイルを指定できる。
perl -MArchive::Tar -e "Archive::Tar->create_archive('temp.tgz', COMPRESS_GZIP, 'temp.txt');