Den Wed, 7 Apr 2004 20:41:46 +0200 skrev Jesper Krogh:
> I dk.edb.system.unix, skrev Peter Jensen:
>> Jesper Krogh wrote:
>> >> Hvordan kan man pakke alle tar.gz filer ud med en kommando??
>> >>
>> >> tar -zxvf *.tar.gz viker ikke...
>> >
>> > for i in $(ls -1 *tar.gz); do tar xzvf $i; done
>>
>> Useless use of ls! Globben '*' bliver fortolket af din shell før ls
>> overhovedet ser den, så du spilder en proces. Desuden er der adskillige
>> muligheder for fejl. F.eks. hvis en af filerne har en whitespace i sit
>> navn, eller hvis der var en gzippet fil der hedder noget i stil med
>> star.gz i biblioteket. Den korrekte måde er:
>>
>> for i in *.tar.gz; do tar -xvzf "$i"; done
>>
>> Hvis underbibliotekerne også skal med, så skal man nok i gang med noget
>> 'find -exec' magi.
>>
>> Noget helt andet er at -1 hos 'ls' udelukkende har noget at sige når
>> output er til en terminal. Hvis du piper output over i f.eks. 'less',
>> eller bruger det som du gør dér, så er output altid i en kolonne.
>
> Takker for korrektionen, jeg vil dog stadig hævde at den jeg postede
> virker for over 95% af folk( og har virker 100% for mig ), det var
> derfor den lige var i "fingrene".
Et af kravene for at den virker er at der ikke er mellemrum i nogen
af filnavnene. Så hvis man roder med en Windows-partition, virker den
fx ikke ("C:\Program files").
Men det er da en glædelig nyhed, hvis 95% af folk ikke har en windows
partition.
Mvh
Kent
--
Help test this great MMORPG game -
http://www.eternal-lands.com/