GNU bug report logs -
#32751
split does not break on error from tar
Previous Next
Full log
View this message in rfc822 format
Alexander Fieroch <alexander.fieroch <at> mpi-dortmund.mpg.de> wrote:
> Hi all,
>
> I found a bug in "split".
> I want to tar some files but some of them have wrong permissions. tar
> puts out an exit code 2 "Cannot open: Permission denied". That is good
> because in my script I can catch this error and react to this.
>
> $ tar -c -f /tmp/test.tar -C /media/testpath testfile ; echo $?
> tar: testfile: Cannot open: Permission denied
> tar: Exiting with failure status due to previous errors
> 2
>
> Unfortunately my tar directory is too big to save it in one file on my
> filesystem that I have to split the archive but doing this "split" does
> not get the error code 2 from tar and does not break as it should:
>
> $ tar -c -f - -C /media/testpath testfile | split - ; echo $?
> tar: testfile: Cannot open: Permission denied
> tar: Exiting with failure status due to previous errors
> 0
>
> In the end I got a tar file without files that have no permissions and
> my script does not break because of error code 0.
As far as I can tell, this is not a bug, but the way pipelines work,
i.e. the result of a pipeline (here the combination of tar and
split) is the result of the last command in the pipeline. If you
want the combination to fail if tar fails, you can use e.g.
set -o pipefail in bash or read PIPESTATUS. For other shells,
see e.g. http://cfajohnson.com/shell/cus-faq-2.html#Q11
Rainer
This bug report was last modified 6 years and 253 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.