我想制作一个提取文件的 perl 脚本,然后打开结果并在其中添加内容。我有以下代码:
$res = qx{tar -xvf $tmp -C /tmp/}; #$tmp was specified earlier
但我不知道如何查看创建的新目录?
这可能不是最有效的方法,但我是 Perl 新手,不了解所有模块。
最佳答案
一个选项是解析 tar 的输出,这会变得困惑并且可以在不同版本的 tar 之间改变。
或者您可以在一个空目录中解压。那么解压后目录中的任何内容都是来自 tarball 的内容。即使 tarball 是不礼貌的并且不创建目录,这仍然有效。
use File::Temp;
my $tempdir = File::Temp->newdir;
qx{tar -xvf $tarball -C $tempdir};
或者你也可以使用Archive::Tar或 Archive::Extract列出存档中的文件。 Archive::Extract 的好处是可以作为各种存档格式的通用接口(interface)。
use Archive::Extract;
my $ae = Archive::Extract->new( archive => $tarball );
my $files = $ae->files;
关于linux - Perl:如何在解压缩 tar.gz 文件时创建新目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20937737/