Hi Steffen,

> > >     $tarxcmd = "tar -c -f - | $COMPRESSOR > $ar";
...
> > >     unless (open XARGS, "| xargs -0 $tarxcmd 2>>$MFFN") {
> >
> > So xargs may run tar more than once, and if $#{$listref} has been
> > growing then perhaps it's tipped over from one invocation to two
> > recently?
>
> I don't understand this sentence of yours?

You're having perl open a pipe to

    xargs -0 tar -c -f - | xz >monthly-backup.tar.xz

xargs runs the given command more than once under certain circumstances.
That's its raison d'ĂȘtre.  If that happened in your case then you've
effectively run something like

    (tar -c -f - foo; tar -c -f - bar) | xz >monthly-backup.tar.xz

> > Is monthly-backup.tar the value of $ar above?  Or have you manually
> > decompressed it?
>
> I ran xz -d on it first, manually.

A-ha!

> >     $ (tar cf - foo; tar cf - bar) | (tar tf -; tar tf -)
> >     foo
> >     bar

If tar did run twice to create the file then you need to run it twice
when reading the file, with the second picking up where the first stops.

    p=mail/2013.track
    (tar tf -; echo still want $p; tar tf -) <monthly-backup.tar |
    fgrep $p

Cheers, Ralph.

Reply via email to