问题: 当我用tar命令来创建一个压缩文件时,总在执行过程中失败,并且抛出一个错误说明"tar:由于前一个错误导致失败退出"("Exiting with failure status due to previous errors"). 什么导致这个错误的发生,要如何解决?

Linux常见问题解答--如何修复“tar:Exiting with failure status due to previous errors”_第1张图片

     当你执行tar命令时,遇到了下面的错误,那么最有可能的原因是对于你想用tar命令压缩的某个文件中,你并不具备其读权限。

  1. tar:Exitingwith failure status due to previous errors

       那么我们要如何确定引起错误的这个(些)文件呢?或者如何确定其它的错误根源?

     事实上tar命令应该会打印出所谓的“上一个错误”("previous errors")到底是什么错误,但是如果你让tar运行在详细模式(即verbose mode,例如, -cvf),那么你会很容易错失这些信息。要找到这些信息,你可以像下面那样,把tar的标准输出(stdout)信息过滤掉。

  1. # tar zcvf bak_lamp.tar.gz /var/spool/cron/ /etc/ /root/scripts/ /application/data/ /application/apache/logs/ /application/apache/conf/ >/dev/null

   然后你会看到tar输出的标准错误(stderr)信息。(LCTT 译注:自然,不用 v 参数也可以。)

  1. # tar zcvf bak_lamp.tar.gz /var/spool/cron/ /etc/ /root/scripts/ /application/data/ /application/apache/logs/ /application/apache/conf/ >/dev/null

  2. tar: Removing leading `/' from member names                  #出现错误原因(1)

  3. tar: /root/scripts: Cannot stat: No such file or directory  #出现错误原因(2)

  4. tar: Exiting with failure status due to previous errors


  你可以从上面的案例中看到,引起错误的原因是(1)“没有搜索到文件或目录”tar: /root/scripts: Cannot stat: No such file or directory)要解决这个问题,只要简单地创建/root/scripts这个文件或目录即可;(2)“从参数名称最后面删除‘/’ ”,然后重新执行tar命令即可。