Hello.

Joerg Schilling <joerg.schill...@fokus.fraunhofer.de> wrote:
 |Ralph Corderoy <ra...@inputplus.co.uk> wrote:
 |>> So it collects a list of files in a textfile, and then either
 |>>   $tarxcmd = "tar -c -f - | $COMPRESSOR > $ar";
 |>> or
 |>>   $tarxcmd = "tar -r -f $ar >/dev/null";
 |>
 |> With the second of these, $ar isn't a compressed file name, like
 |> foo.tar.gz?  Which was used for the problem tar file?
 |>
 |>> and then
 |>>         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?
 |
 |If you like to create working incremental backups that are able to \
 |handle file 
 |renames, you need to backup any filesystem with exactly one command \
 |run, so 
 |xargs is a really bad idea.

I've changed it back to how it was all the time, and only use "|
xargs -0 tar -r -f $ar", adding the compression step later on.
As far as i recall all this originated, long ago that is, from the
problem that file lists stored in a file were not supported by all
tar's around and for all possible operations, and this is a real
pity, given that argument lists exceed so soon, and space is
expensive.  Anyway, a mode to simply concatenate, and then
a finalizer invocation would be great for my use case, otherwise.
Maybe i'll switch to ar(1) instead, in the future.
Ciao,

--steffen

Reply via email to