首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl使用系统提取tar

Perl使用系统提取tar
EN

Stack Overflow用户
提问于 2013-12-08 20:00:06
回答 2查看 620关注 0票数 2

我试图提取一个带有tar文件的目录,但它似乎不能正常工作。该命令在命令行中工作,但不适用于perl中的"system“。我真的需要它在perl中工作。

代码语言:javascript
复制
$tar_dir = "/root/updates/*.tar.bz2";
system ("for i in $tar_dir ; do tar xvfj $i; done");

在命令行上工作,如:for i in *.bz2 ; do tar xvfj $i; done

我漏掉了什么吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-08 20:04:18

或者,您可以将循环移动到Perl代码中:

代码语言:javascript
复制
use warnings;
use strict;

for (glob '/root/updates/*.tar.bz2') {
    system "tar xvfj $_";
}
票数 4
EN

Stack Overflow用户

发布于 2013-12-08 20:02:33

是的,您忘记了在perl字符串中转义$i

尝试:

代码语言:javascript
复制
system ("for i in $tar_dir ; do tar xvfj \$i; done");

如果你没有摆脱它,那么它就会像$tar_dir一样被扩展。确保您的perl脚本顶部有use strict;use warnings;,这将有助于解决这类问题(在本例中,如果$i不是在perl脚本中定义的,那么您就会收到来自perl的消息,告诉您这个问题。)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20458326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档