在Perl脚本中压缩.tar.gz没有目录

时间:2016-12-14 18:48:59

标签: bash perl tar

似乎是一个愚蠢的问题,但我无法通过谷歌或手册页找到任何东西...我确定它是我的报价...当我从命令行运行以下,它按预期运行/ desired(即只有没有任何目录的文件):

tar cfz /path/to/file.tar.gz --directory="/path/to/" .

但是,我在perl中有这个类似的行,虽然有一个变量作为路径($ folder_errors ='/ path / to'):

system('tar cfz '."\"${folder_errors}\"/errors.tar.gz --directory=\"\"${folder_errors}\"/\" .");

也尝试了

system('tar cfz '."\"${folder_errors}\"/errors.tar.gz --directory=\"${folder_errors}\"/ .");

具有相同(意外)的结果。

它压缩正确的文件,但是,压缩文件内部是所有文件所在的文件结构./

2 个答案:

答案 0 :(得分:-1)

尝试使用perl的引用运算符。 qq[...]就像双引号一样,除非你不必逃避其中的文字"

system qq[tar cfz "$folder_errors/errors.tar.gz" --directory="$folder_errors"];

答案 1 :(得分:-1)

您的报价似乎有所纠正。您是否注意到要在归档文件所在的同一目录中创建tar.gz?我想你是在暴露自己的烦恼。如果你不能改变tar的目标目录,你应该避免递归:

system qq[tar cfz "$folder_errors/errors.tar.gz" --exclude "./errors.tar.gz" --directory="$folder_errors" . ];