Jak na adresare v BASH

Dalibor Straka dast na panelnet.cz
Úterý Duben 13 17:12:16 CEST 2004


On Tue, Apr 13, 2004 at 12:50:10PM +0200, jirkajj na centrum.cz wrote:
> Zdravim vsechny linuxaky.
> Motam se kolem BASHe a ne a ne prijit na to jak vyresit tohle:
> Mam adresar1 a v nem podadresare neco1, neco2, neco3, neco4, neco5...
> Vytvorim adresar2 a v nem prazdne podadresare, ktery pojmenuju 1, 2,
> 3, 4, 5... - pocet odpovida podadresarum v adresari1. Kdyz chci neco
> hromadne zkopirovat z adresare1 do adresare2 neni problem. Vlezu do
> adresare1 a dam 
> for i in neco*
> do
> cp -r $i /cesta/adresar2/${i#neco*}
> done. A hotovo.
> Peru se vsak s veci, kdyz v tom adresari2 neni odpovidajici pocet
> podadresaru. Je tam treba jen 1, 4, 9... Pak mi to podadresare
> nevytvori, jejich obsah se napere rovnou do 1, 4, 9. Muze mi s tim
> nekdo helfnout?
> 
> Diky, Jirka
> 
> 
Pokud predem vis, ve kterem adresari budou vsechny podadresare a ve
kterem budou chybet bude uplne stacit tvoje myslenka vzata za druhy
konec:
for i in *; do
   cp -r "neco$i" "/cesta/adresar1/$i"
done

pripadne to lze doplnit touto podminkou:
for i in neco*; do
   test -d "${$i#neco}" || proved_tento_prikaz_kdyz_adresar_neexistuje
   #dale pokracuj jiz normalne
   cp -r "neco$i" "/cesta/adresar1/$i"
done

-- Dalibor


Další informace o konferenci Linux