Portál AbcLinuxu, 13. května 2025 23:26
find . -name \*.sh -executable -type f -exec /bin/bash '{}' \;problemom je, ze ak sa prvy skript na niecom zasekne (napriklad sleep 1000), tak tie ostatne sa nespustia a budu cakat na skoncenie prveho. Skusal som aj xargs, ale vysledok bol este horsi ... Nejake napady ? Vdaka.
Řešení dotazu:
find . -name \*.sh -executable -type f -print | xargs -P 0 -n 1 /bin/bash
-P 0
povoli spustenie tolkych procesov, kolko sa len da
-n 1
povoli iba jeden argument.
ak by bolo za -n
nieco ine, alebo default, tak by to vyprodukovalo nieco taketo:
/bin/bash s1.sh s2.sh
a spustilo by to iba s1.sh
Ahoj.
Mozna strilim od boku, ale neslo by ty skripty poustet normalne na pozadi?
... -exec /bin/bash '{}' & \;
Dejv
... -exec /bin/bash '{}' & \;
find: missing argument to `-exec'
a
... -exec /bin/bash '{}' \& \;
to spusta sekvencne, jeden za druhym
... -exec /bin/bash '{} &' \;by to už mělo fungovat :)
/bin/bash: ./s1.sh &: No such file or directory
...
... -exec "/bin/bash '{}' &" \;
find: `/bin/bash \'./s1.sh\' &': No such file or directory
:)
Spíš takhle:
find ... -exec bash -c "{} &" \; find ... -exec bash -c "bash {} &" \;
Ale opatrně s tím, před chvílí jsem zkusil
find . -name '*.jpg' -exec bash -c "display {} &" \;
v adresáři, kde bylo 1125 obrázků, a systém se mnou pak pár minut nemluvil… :-)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.