Gre*_*ice 5 linux unix shell gnu tar
默认情况下,对于许多类型的错误,都会tar
向 stderr 打印一条消息,然后继续前进——它称之为“可恢复”错误,通常是与单个文件或存档成员相关的错误,如权限问题。
有时这种行为真的很令人讨厌。例如,如果我正在解压缩存档并且磁盘已满,那么我可能会得到这样的信息:
tar: python-lib/PyML/classifiers/ext/_cgist.so: Wrote only 2048 of 10240 bytes
tar: python-lib/PyML/classifiers/ext/_csmo.so: Cannot write: No space left on device
tar: python-lib/PyML/classifiers/ext/_csvmodel.so: Cannot write: No space left on device
tar: python-lib/PyML/classifiers/ext/_knn.so: Cannot write: No space left on device
tar: python-lib/PyML/classifiers/ext/_libsvm.so: Cannot write: No space left on device
tar: python-lib/PyML/classifiers/ext/_mylibsvm.so: Cannot write: No space left on device
tar: python-lib/PyML/classifiers/ext/cgist.py: Cannot write: No space left on device
tar: python-lib/PyML/classifiers/ext/csmo.py: Cannot write: No space left on device
Run Code Online (Sandbox Code Playgroud)
这可以在一个大档案中持续数千行。如果这种情况发生在脚本中,我宁愿tar
立即退出,以便向用户提示错误。
有没有办法强制tar
退出它看到的第一个错误?我没有在扫描中看到它tar --help
。任何用于实现此目的的包装脚本的合理配方也将被感激地接受。
一种方法是将标准错误输出重定向到/dev/full
,例如:
tar ... 2>/dev/full
Run Code Online (Sandbox Code Playgroud)
这将导致 tar 在尝试将警告消息输出到stderr
.
归档时间: |
|
查看次数: |
799 次 |
最近记录: |