【问题标题】:Perl: how to tar and untar all the contents of a directory including files and subdirectoriesPerl:如何 tar 和解压缩目录的所有内容,包括文件和子目录
【发布时间】:2013-02-20 20:00:23
【问题描述】:

我正在编写一个 Perl 脚本,在脚本结束时,我想将特定目录(例如 selected)的所有内容 tar 为 selected.tar

现在,我需要将 selected.tar 从另一个位置的另一个 perl 脚本解压缩到 selected 目录。

这是我的绝对要求,我需要保留所有权限级别,解压应在SECURE_EXTRACT_MODE 中完成。

总之,请告诉我如何解压缩目录的所有内容,包括文件和子目录。

非常感谢您在这方面的任何帮助。

如果您需要更多详细信息,请告诉我。

谢谢

【问题讨论】:

  • 您自己尝试过什么吗?另外,也许你应该多说一点你想用这个来完成什么。你可能在这里重新发明轮子。

标签: perl


【解决方案1】:

要做到这一点而不用炮击tar,你需要使用 Archive::Tar::Streamed 和...一起 File::Find。此外,每个文件都必须足够小,才能完整地读入 perl 进程内存。

这样的事情应该做你想做的事。

use strict;
use warnings;
use autodie;

use File::Find 'find';
use Archive::Tar::Streamed;

open my $fh, '>:raw', 'selected.tar';
my $tar = Archive::Tar::Streamed->new($fh);

find(sub { $tar->add($File::Find::name) }, '/path/to/selected');

close $fh;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多