find mit -prune

25/08/2010 - 15:24 von Thomas Guettler | Report spam
Hallo,

ich will mit der Option -prune Verzeichnisse überspringen, da dort viele tausend Dateien
sind:

find \( -path ./var/objects -o -path ./var/import-saved \) -prune -o -name '*.py'

Aus mir unverstàndlichem Grund werden aber die zu überspringenden Verzeichnisse auch
auf stdout ausgegeben. Wie kan man das verhindern?

Bsp:

[user@test foo]$ find \( -path ./var/objects -o -path ./var/import-saved \) -prune -o -name '*.py'
./var/objects
./var/import-saved


Thomas


Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de
 

Lesen sie die antworten

#1 Rud1ger Sch1erz
25/08/2010 - 15:32 | Warnen spam
Thomas Guettler writes:

ich will mit der Option -prune Verzeichnisse überspringen, da dort
viele tausend Dateien sind:



ok

find \( -path ./var/objects -o -path ./var/import-saved \) -prune -o -name '*.py'

Aus mir unverstàndlichem Grund werden aber die zu überspringenden
Verzeichnisse auch auf stdout ausgegeben.



Da du nix angegeben hast, was `find' machen soll, außer traversieren,
macht es für alles den default: print. Nichtsdestotrotz bricht es die
Suche in den prune Zweigen ab, nachdem es sie ausgegeben hat.

Wie kan man das verhindern?



Aktion angeben, z.B. -print im nicht-prune-Zweig:

find \( -path ./var/objects -o -path ./var/import-saved \) -prune -o
-name '*.py' -print

HTH,
Rudiger

Ähnliche fragen