wildcard v TARu a tak vybec

From: Karel Bednar (bednar@edu.cce.cz)
Date: 01. 02. 2002, 11:09 CET


Muzete mi nekdo poradit? Popripade poslat link na nejake HOWTO?

Zkousel jsem expandovat  z tar archivu pouze jeden adresar
timto zpusobem:

tar -xvf archive.tar   /sb1/samba/adresar1/adresar2/*

Pokud byl v adresari jeden soubor tak to probehlo korektne,
pokud jich tam bylo vic tak ne.
Analogicky tomu kdyz jsem pouzil * v nazvu souboru v archivu jako
tar -xvf archive.tar   *oubor*.pdf

Pokud byl v archivu pouze  soubor.pdf  tak O.K. pokud jich je tam vic
jako soubor1.pdf a soubor2.pdf tak opet chyba.

Jediny clovek ochotny mi poradit odepsal toto:

BTW: Znakum ? a * se rika zoliky (zastupne znaky) pouze pri expanzi
prikazu a vyhledavani pomoci find (nas pripad). V regularnich vyrazech
funguji jinak, tam jsou to opakovaci znaky.

A jak teda ty opakovaci znaky funguji ?

Z jedoducheho duvodu: Tar, ostatne jako spousta dalsich prikazu,
neumi pracovat se zoliky, misto toho je bash expanduje. Vysledkem
je to, ze tar dostane nekolik parametru a pritom dokaze zpracovat
jen jeden. Reseni je jednoduche:

for soubor in sda/samba/*; do tar -tf $soubor; done

Bacha ovsem na relativni odkazy, radeji zadavej absolutni, tedy
napr.

for soubor in /home/sda/samba/*; do tar -tf $soubor; done

Vim ze tohle jde, ale vzdycky mi to prislo jako vysoka skola smyku
a nejsem moudry z te syntaxe.

Moc by mi zase pomohl i jenom nejaky link.

diky

-- 
Karel Bednar



This archive was generated by hypermail 2.1.2 : 01. 02. 2002, 11:09 CET