场景:
一个群里的朋友问我,说他在压缩过程中一直提示

tar: 由于前次错误,将以上次的错误状态退出

说找不到原因。我看后直接回复你这个可能是权限问题,他通过sudo 后再次压缩,告知成功了,非让解释下原因和排查思路.
下面写分析一下这个简单的问题.

分析:
遇到此类问题我们如何来让未知的变为已知,就是把系统的错误打印出来.
但是此朋友的问题显示的是 tar: 由于前次错误,将以上次的错误状态退出 ,(previous errors),由于tar stdout 标准输出过滤掉了错误信息,所以导致无法展现.

解决方式:

tar -czvf xxx.tar.gz ./xxx --exclude=.svn > /dev/null 

可以通过此命令把 stdout 标准输出 改为 stderr 标准错误直接把错误内容展现出来.
无非是会暴漏一些类似
tar: xxx:Cannot open:Permission denied