Portál AbcLinuxu, 12. listopadu 2025 20:02
Řešení dotazu:
for i in `find .` do tu aplikujes tie prikazy na subory done
find a jeho parametry | while read prom; do echo "tady si delej co chces s $prom" done
find ... -print0 | xargs -0 necoPokud je potřeba dělat nějaké složitější akce, tak si napiš skript, který tu akci udělá na souborech, které se mu předají jako parametr a timhle to pak spust.
find www/ -type f -perm 600 -exec 'chmod -c 755 {}' \;
Projeď adresář www a na všechny soubory co mají právo čtení a zápisu pouze pro vlastníka aplikuj příkaz chmod s následujícími parametry.
Jinak poradím jen jedno. Hledej šmudlo a koukni se taky na http://cs.wikibooks.org/wiki/Linux
-exec. Nicméně si napsat vlastní script, který ale nebude pracovat s jedním souborem, ale pomocí shift (nebo for i; do ...; done) postupně zpracuje všechny parametry a použít ... -print0 | xargs -0 ... taky není vůbec špatný nápad (nicméně o chlup pomalejší než find | while read; do ... done). Nicméně pokud jde fakt o rychlost, tak bych použil třeba perl a File::Find.
P.S.: Debilky jako Azurit, kteří jen tak plácnou úplnou kravinu a pak to omlouvají tím, že to byl jen takový návrh radši vůbec nečti. To je vidět na první pohled, že pár miliónů souborů vživotě nespracovával a o fungování for i in `find` ví méně než nic (původně hovno).
find má od nějaké verze možnost za -exec místo \; napsat + a to se pak chová jako -print0 | xargs -0
RE R.S.: To je sice pekny, ale kdyby tu meli odpovidat jenom naprosty odbornici, tak bych se dockal odpovedi na svuj dotaz tak za 5 let...Ničím nepodložená spekulace.
nemuzu soudit jestli to je debilek nebo neni, ale aspon se snazil...Ne, nesnažil se. Jen tak plácnul první blobost co ho napadla. Kdyby ti poradil
rm -rf /, tak budeš patrně taky šťastnej jak blecha.
# bash_find cesta action ...
# bude volat action ... soubor
shopt -s nullglob
shopt -s dotglob
function bash_find {
local item
local path="$1"
shift
if test -d "$path" ; then
for item in "$path/"* ; do
bash_find "$item" "$@"
done
else
"$@" "$path"
fi
}
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.