如何对多个目录进行tar操作,并附加某些模式的文件,如“.txt”,并排除某些目录,并将某些模式(如“.exe”)排除在一个tar文件中。主要的一点是目录的数量是未知的(动态),所以我需要循环我猜?
答案 0 :(得分:7)
我使用Archive::Tar并使用Class::Path(特别是@filelist
的{{1}}方法)填充Class::Path::Dir
答案 1 :(得分:1)
假设您已经使用File :: Find找出了所需的文件,那么
my @dir = qw/a b/ ;
system "tar -cvf mytar @dir" ;
可能会奏效。但是你可能会发现命令行太长了。
在这种情况下,可以将文件列表写入文件并使用选项
--files-from=NAME
(请不要告诉我你不能写文件)
答案 2 :(得分:0)
如果出于某种原因,您不能或不允许在基本系统之外安装其他模块,您可以使用File::Find而不是Class :: Path。
听起来你已经知道如何调用系统tar命令,所以我会把它留在那里。