tar-problem

Jan T. Kim kim at mpiz-koeln.mpg.de
Di Feb 22 10:20:29 CET 2000


On Tue, Feb 22, 2000 at 12:09:51AM +0100, Rasmus Plewe wrote:
> On Mon, 21 Feb 2000, Jan T. Kim wrote:
> 
> > On Mon, Feb 21, 2000 at 10:45:07PM +0100, Rasmus Plewe wrote:
> [...]
> > > find -name *.htm -print | xargs tar cvfz bla.tar
> > > 
> > > ist eine von vielen Moeglichkeiten. Vermutlich nicht die Eleganteste.
> > > Tuts aber.
> > 
> > Hmm... glaub' ich nicht. 
                               ^^^
Jaja, da fehlte ein smilie -- sorry.

> Das hier ist keine Glaubenssache. Etwas funktioniert, oder es
> funktioniert nicht.
> 
> > Wenn xargs die Liste der files in mehrere
> > chunks einteilt, werden in bla.tar nur die files des letzten chunks
> > archiviert.
> 
> ??

Also, einmal angenommen, die Kommandozeile fasse nur 3 Parameter, dies
laesst sich mit ``xargs -n 3'' simulieren:

    % touch f1.html f2.html f3.html f4.html
    % ls *.html | xargs -n 3 tar zcvf bla.tar
    f1.html
    f2.html
    f3.html
    f4.html
    % tar ztvf bla.tar 
    -rw-rw-r-- kim/kim           0 2000-02-22 02:08 f4.html

Also, wo sind nun f1.html, f2.html und f3.html archiviert? Sie sind
nirgends archiviert, weil das Archiv bla.tar, in dem sie erst gelandet
sind, sogleich durch ein Archiv gleichen Namens, in dem f4.html drin
ist, ueberschrieben wurde. Wer dies nicht glaubt, der betrachte:

    % ls *.html | xargs -n 3 echo tar zcvf bla.tar
    tar zcvf bla.tar f1.html f2.html f3.html
    tar zcvf bla.tar f4.html

> > Funktionieren koennte also eher
> > 
> >     find . -name '*.html' -print | xargs tar -rf bla.tar
> 
> Dein r bei tar ist sinnlos, wenn das Archiv nicht schon existiert. Du
> willst ein c.

Nunja -- das c ist dafuer dann sinnlos, wenn das Archiv schon existiert
(s.o.).   ;-)

Und ja -- inzwischen habe ich mich auch nochmal davon ueberzeugt, dass
``tar -rf'' ueber die rudimentaere Intelligenz verfuegt, ein nicht
existierendes Archiv ggfs. neu anzulegen:

    % ls *.html | xargs -n 3 tar -rf blapp.tar
    % tar -tvf blapp.tar
    -rw-rw-r-- kim/kim           0 2000-02-22 02:08 f1.html
    -rw-rw-r-- kim/kim           0 2000-02-22 02:08 f2.html
    -rw-rw-r-- kim/kim           0 2000-02-22 02:08 f3.html
    -rw-rw-r-- kim/kim           0 2000-02-22 02:08 f4.html

> Weiterhin ist (bei Linux) der Punkt hinter dem find redundant, und die
> quotes um das *.html ueberfluessig.

<sarcasm>
Oh, ich bitte vielmals um Entschuldigung dafuer, dass ich -- verdorben
durch jahrelange Gewohnheit -- eine Version vorgeschlagen habe, die
nicht nur mit der unter Linux ueblichen Kombination bash / GNU find
funktioniert, sondern auch mit anderen shells und -- horribile dictu --
diversen mit kommerziellen Unix-Varianten mitgelieferten Versionen von
find...
</sarcasm>

*.html ohne quotes funktioniert uebrigens auch mit einer bash nur dann
wie hier gewuenscht, wenn im current working directory selbst kein(!)
file, dessen Name auf .html endet, existiert.

> > (Nein, ausprobiert hab' ich das nicht, das muesst Ihr schon selber machen
> > ;-)
> 
> Wozu schreibst Du dann eine mail? Du lehnst eine funktionierende Loesung
> ab, weil Du sie nicht glaubst, und stellst eine so nicht funktionierende
> vor, die Du nicht ausprobierst (und, bitteschoen, das Ausprobieren nimmt
> bei sowas doch wirklich nur eine halbe Minute in Anspruch). Danke fuer
> die Verschwendung von Zeit bei 300 Listenteilnehmern um Dir 2x30 sec
> fuer das Testen zu sparen.

Wie oben gezeigt, funktioniert die von Dir vorgeschlagene Loesung nur
solange die Liste der zu archivierenden files nicht so lang wird, dass
xargs sie in mehr als einen chunk aufteilt. Dies ist mir bei der
Lektuere Deiner message aufgefallen.

Verfahren, die mit ein paar Testdaten funktionieren und die bei
wachsenden Datenmengen oder anderweitig im Rahmen des
Einzukalkulierenden veraenderten Bedingungen ohne Fehlermeldungen
weiter "funktionieren", dabei aber nicht mehr das tun, was intendiert
ist, sind im Computerbereich regelmaessig fuer maximalen Frust gut.
Mit meiner message wollte ich auf eine solche Gefahr hinweisen, um
vielleicht einigen Mitlesern hier den entsprechenden Frust zu
ersparen. Damit sehe ich mich in dieser mailing list durchaus on
topic.

Rueckblickend muss ich zugeben, dass meine Ausfuehrungen arg flockig
ausgefallen sind, und dass die von mir beabsichtigte Information daher
unnoetig schwer erkennbar war. Eine so hektische reply waere m.E.
trotzdem nicht unbedingt noetig gewesen.

Greetinx, Jan
-- 
 +- Jan T. Kim -------------------------------------------------------+
 |             email: kim at mpiz-koeln.mpg.de                           |
 |             WWW:   http://www.mpiz-koeln.mpg.de/~kim/              |
 *-----=<  hierarchical systems are for files, not for humans  >=-----*



Mehr Informationen über die Mailingliste Linux-Users