첫 번째 오류가 발생하면 tar가 강제로 종료될 수 있습니까?

첫 번째 오류가 발생하면 tar가 강제로 종료될 수 있습니까?

기본적으로 많은 종류의 오류에 대해 tarstderr에 메시지를 인쇄한 다음 계속 진행됩니다. 오류는 "복구 가능한" 오류라고 하며 일반적으로 권한 문제와 같이 단일 파일이나 아카이브 구성원과 관련된 오류입니다.

때로는 이런 행동이 정말 불쾌할 때도 있습니다. 예를 들어 아카이브의 압축을 풀고 디스크가 가득 찬 경우 다음과 같은 결과가 나타날 수 있습니다.

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

그것은 큰 아카이브에 수천 줄에 걸쳐 계속될 수 있습니다. 스크립트에서 이런 일이 발생하면 tar사용자에게 프롬프트 오류를 ​​제공할 수 있도록 즉시 종료하는 것이 좋습니다 .

tar첫 번째 오류가 나타나면 강제로 종료할 수 있는 방법이 있나요 ? 스캔한 내용에는 표시되지 않습니다 tar --help. 이 목적을 달성하기 위한 래퍼 스크립트에 대한 올바른 방법도 감사하게 받아들여질 것입니다.

답변1

한 가지 방법은 표준 오류 출력을 다음 /dev/full과 같이 리디렉션하는 것입니다.

tar ... 2>/dev/full

이로 인해 tar가 경고 메시지를 출력하려고 할 때 실패하게 됩니다 stderr.

관련 정보