perl中的系统(" tar xzf DirName / tarFile.tar DirNameInsideTar / FileName")失败并返回-1

时间:2016-07-13 22:21:36

标签: linux perl return tar exit-code

tar的退出代码是什么意思?我正在使用命令

system("tar xzf DirName/tarFile.tar DirNameInsideTar/FileName") 

从perl脚本解压缩。我试图解开大约1000个tar文件,但是在解压缩后,有时100个或者有时500个tar文件系统命令失败并返回-1。我检查了代码的内存使用情况和可用的磁盘空间,两者似乎都很好。有谁知道错误是什么?

1 个答案:

答案 0 :(得分:4)

system返回-1时,$!包含错误消息。

system("tar xzf DirName/tarFile.tar DirNameInsideTar/FileName");

die("Can't execute command: $!\n")              if $? == -1;
die("Child killed by signal ".($? & 0x7F)."\n") if $? & 0x7F;
die("Child exited with error ".($? >> 8)."\n")  if $? >> 8;

system返回的值也可用$?。)