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