2

如何对多个目录进行 tar 处理,并附加带有“.txt”等模式的文件,并排除一些目录并将“.exe”等模式全部排除到单个 tar 文件中。要点是目录的数量是未知的(动态的),所以我猜我需要循环遍历?

4

3 回答 3

7

我会使用Archive::Tar@filelist并用Class::Path填充(特别是Class::Path::Dir'srecurse方法)

于 2010-03-30T14:29:52.913 回答
1

假设您已经使用 File::Find 确定了您想要的文件,然后类似

    my @dir = qw/a b/ ;
    system "tar -cvf mytar @dir" ;

可能会奏效。但是你可能会发现命令行太长了。

在这种情况下,可能会将文件列表写入文件并使用该选项

   --files-from=NAME

(请不要告诉我您不允许写入文件)

于 2010-03-30T18:28:05.467 回答
0

如果由于某种原因您不能或不允许安装超出基本系统的附加模块,您可以使用File::Find而不是 Class::Path。

听起来您已经知道如何调用系统 tar 命令,所以我将保留它。

于 2010-03-30T16:09:55.677 回答