linux-l: tar
JSC
JSC at jsc.tfh-berlin.de
So Aug 26 22:28:19 CEST 2001
* Markus Hubig <lord.aragon at gmx.net> [26.08.2001 15:52]:
[..]
> Seltsam ist nur das in meiner deutschen Manpage folgendes steht:
>
> | -u ersetzt Dateien, die neuer als eine bereits archivierte Version
> | sind. Ist eine Datei noch nicht archiviert, so wird sie eingefügt
>
> In der englischen heist es dagegen:
>
> | -u, --update
> | only append files that are newer than copy in archive
>
> Und "append" heist korreckt übersetzt wohl eher "anhängen" und nicht
> ersetzen! Also was jetzt: anhängen oder ersetzten?
>
da alles mal mit Tape ARchives anfing, sicherlich anhaengen. das mit dem
einkleben ist auf tapes ja eher schwierig.
> Jetzt bleibt nur noch die Frage ob und wenn wie man die ältere Version
> einer Datei extrahieren kann?
>
das problem wird sich durch ein pattern auf der kommandozeile wohl
nicht erschlagen lassen, da dies immer auf den namen und somit auf beide
versionen matcht. eine mischung aus sigstop/sigcont und einem strace zur
kontrolle koennten evtl. zum erfolg fuehren.
zweite idee: das file jeweils zuegig umbenennen:
prozess1:
let i=1; while true; do
if [ -f datei ]; then
mv datei datei.$i
let i+=1
fi
done
prozess2:
tar -xzf tarfile
beides ist bei kleinen archiven ziemlich zeitkritisch. das zweite verfahren
sollte aber eher funktionieren. im schlimmsten fall muss man beides
kombinieren und vor allem naeher am system programmieren:
parent:
child1: move_prozess # background
child2: tar -xzf tarfile # background
while( exists(child2) ){
sigstop(child2);
sleep(1);
sigcont(child2);
}
kill(child1);
bye
Jens
Mehr Informationen über die Mailingliste linux-l