看起来像一个愚蠢的问题,但我无法通过谷歌或手册页找到任何东西......我确定这是用我的引号...当我运行在命令行以下时,它运行如预期的/所需的(即只有文件而没有任何目录):在Perl脚本中压缩无目录的.tar.gz
tar cfz /path/to/file.tar.gz --directory="/path/to/" .
然而,我在Perl此类似线,尽管(变量作为路径$ folder_errors =” /路径/到'):
system('tar cfz '."\"${folder_errors}\"/errors.tar.gz --directory=\"\"${folder_errors}\"/\" .");
还试图
system('tar cfz '."\"${folder_errors}\"/errors.tar.gz --directory=\"${folder_errors}\"/ .");
具有相同(意外的)结果。
它压缩正确的文件,但是,压缩文件内部是所有文件所在的文件结构./
。
这些奇怪的双双引号是怎么回事? – melpomene
@melpomene如果我自称是“引用”知识渊博的人,我会撒谎。我没有删除双打b/c我看到了同样的行为。我真的只是在尝试。我是perl和bash的新手,仍然不清楚报价实现。 – TriHard8
@ikegami我运行了调试器(perl -d)并在该行执行之前检查了该变量。正确的文件位于压缩文件中,该文件也位于所需的目录中。唯一的问题是tarball里面的文件在'。/' – TriHard8