Portál AbcLinuxu, 10. května 2025 16:46

Dotaz: Bash - rekurzivní procházení adresáře

27.7.2015 14:40 miro
Bash - rekurzivní procházení adresáře
Přečteno: 434×
Odpovědět | Admin
Potřeboval bych v bashi rekurzivně projít jeden adresář, a každý ze souborů tam nalezených (jednotlivě) předat i s absolutní cestou mému bashovému skriptu jako argument. Mohl by mě někdo nakopnout, kudy na to?
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Punny avatar 27.7.2015 14:46 Punny | skóre: 28 | Praha
Rozbalit Rozbalit vše Re: Bash - rekurzivní procházení adresáře
Odpovědět | | Sbalit | Link | Blokovat | Admin
find?
xxxxxx avatar 27.7.2015 14:46 xxxxxx | skóre: 23
Rozbalit Rozbalit vše Re: Bash - rekurzivní procházení adresáře
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi bych to udělal takhle:
./skript.sh $(find `pwd` -name '*')
Zdroj
Fuky avatar 27.7.2015 14:55 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Bash - rekurzivní procházení adresáře
Odpovědět | | Sbalit | Link | Blokovat | Admin
$ find /jeden/adresar -type f -exec /cesta/tvuj_skript.sh {} \;

Více viz "man find".

-- RÁMO: psí tábor , ETriatlon: Výuka plavání
Heron avatar 27.7.2015 15:09 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Bash - rekurzivní procházení adresáře
Jenom doplním, pokud skript (nebo obecně volaný program) dovoluje použít víc argumentů, tak je dobré řešení:
find adresar -print0 | xargs -0 program
Potom se může spustit i více procesů současně:
find adresar -print0 | xargs -0 -P8 program
Pokud program neumí více argumentů, tak je můžeme stále spouštět paralelně (s jedním argumentem)
... | xargs -0 -P8 -l1 program
(Vše samozřejmě pouze za předpokladu, že program lze volat několikrát a jednotlivé instance se neovlivňují.)
27.7.2015 21:20 miro
Rozbalit Rozbalit vše Re: Bash - rekurzivní procházení adresáře
Odpovědět | | Sbalit | Link | Blokovat | Admin
mika-talvinen: nefunguje, "too many arguments"

Fuky, Heron: funguje, jak má, přesně tohle jsem potřeboval

Všem moc díky.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.