如何在Perl中对多个文件进行tar?

如何在Perl中对多个文件进行tar?,perl,include,tar,Perl,Include,Tar,我怎样才能对多个目录进行tar,并使用诸如“.txt”之类的模式附加文件,如何将一些目录和诸如“.exe”之类的模式排除在一个tar文件中。主要的一点是目录的数量是未知的(动态的),所以我需要循环我想?我会使用@filelist填充(特别是Class::Path::Dir的递归方法)如果出于某种原因您不能,或者不允许,在您可以使用的基本系统之外安装其他模块,而不是Class::Path 听起来您已经知道如何调用系统tar命令,所以我就不说了。假设您已经使用File::Find-then之类的工具

我怎样才能对多个目录进行tar,并使用诸如“.txt”之类的模式附加文件,如何将一些目录和诸如“.exe”之类的模式排除在一个tar文件中。主要的一点是目录的数量是未知的(动态的),所以我需要循环我想?

我会使用
@filelist
填充(特别是
Class::Path::Dir
递归
方法)

如果出于某种原因您不能,或者不允许,在您可以使用的基本系统之外安装其他模块,而不是Class::Path


听起来您已经知道如何调用系统tar命令,所以我就不说了。

假设您已经使用File::Find-then之类的工具计算出了需要的文件

    my @dir = qw/a b/ ;
    system "tar -cvf mytar @dir" ;
可能有用。但是您可能会发现命令行太长

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

   --files-from=NAME

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

我不能使用Archive::Tar,因为我正在使用系统调用创建Tar文件(这是必需的)$tarExe=“$toolDir/bin/gnu_Tar/${binPlatform}/Tar.exe”;系统(${tarExe}-cvf$tarname$location”);你有一个硬性要求吗?在一个真正的项目中,没有充分的理由这样做。这是家庭作业吗?我需要使用winx64文件夹中的tar.exe来创建tar文件。这是我被建议做的标准方法。创建tar文件是一个真正的项目。使用Perl模块是用Perl做事情的标准方式,而使用其他二进制文件则不是。如果这是一个建议,那么您不必这样做。如果任何文件名包含一个对shell有特殊意义的字符,它就会中断。在程序参数后提供参数作为列表。您可能指的是我的第一个建议。文件中的文件可以安全地防止这种情况。