Newsgroup: it.comp.os.linux.iniziare
Titolo: Funzione find su più tipi di file

Salve,
 
volendo cercare tutti i file di un certo tipo, che sintassi dovrei 
usare?
 
Ad esempio i file che iniziano per A o che hanno come estensione ".txt"
 
Qualcosa tipo: find / -name "A*", ".txt"
 
e se invece volessi quelli che soddisfano tutte le condizioni?
 
Grazie
 

 Qualcosa tipo: find / -name "A*", ".txt"
 
find / -name "A*" -o -name "*.txt"
 
Ecco, adesso digita:
 
man find [INVIO]
 
/OPERATORS [INVIO]
/ [INVIO]
 
Leggi bene.
-- 
Bye, Lem
Ceterum censeo ISLAM esse delendum
_________________________________________________________________
Non sprecare i cicli idle della tua CPU, né quelli della tua GPU.
http://cleanenergy.harvard.edu/
 
http://spin.fh-bielefeld.de/
 
 
http://www.gpugrid.net/
 

 Leggi bene.
 
Si ma non c'è un esempio di sintassi da usare. Solo discorsi generali.
Non puoi scrivere una riga d'esempio che sarebbe più utile di tutto 
l'help?
 

 
Io la posso anche scrivere:
 
find .  \( -name '*txt' -o  -name '*jpg' \) -print
 
Ma sicuramente non è più utile di tutto l'help.
E ancora di più non è più utile dell'imparare a leggere i man.
 
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net
 

 E ancora di più non è più utile dell'imparare a leggere i man.
 
Grazie, ho fatto un po' di prove e ho trovato il modo giusto. Le parentesi 
non servono in questo caso.
 

Midnightmare ha scritto:

Se lo dici tu io mi fido, ma se nel mio find non metto le
parentesi, mi trova solo i file che corrispondono alla 2^
espressione.


 l'help?
 
 
Certo, anzi due:
 
info sed
 
http://www.google.it/search?q=find+tutorial
 
 
 

 
 
Questa stringa a me funziona correttamente: find . -name \*.ds -o -name \*.DS -
o -name ds_\* -o -name DS_\*
 

 espressione.
 
Però, levando il -print alla fine, i conti tornano.
 
Se non metti azioni, tranne eventualmente -prune, viene eseguita
l'azione print per *tutti* i file trovati che soddisfanno i
criteri di ricerca. Se però da qualche parte espliciti
un'azione (come per esempio print), questa viene eseguita
*solo* quando hai esplicitamente previsto di eseguirla.
 
Nota che expr1 expr2 ha priorità più alta di expr1 -o expr2.
 
Quindi 
find .  \( -name '*txt' -o  -name '*jpg' \) -print
equivale a
find . -name '*txt' -o  -name '*jpg'
 
Invece
find . -name '*txt' -o  -name '*jpg' -print
equivale a
find . -name '*txt' -o  \( -name '*jpg' -print \)
e significa spannometricamente:
trova i *txt (e niente, non fare una mazza) e poi trova i *jpg e
stampali a schermo.


 Però, levando il -print alla fine, i conti tornano.
 
Eh, prima lo spingi alla lettura del man e poi gli spieghi
tutto fino a questo punto? :-p
 
 
 
Brutte abitudini, le mie.
Avendo a che fare con find anche NON gnu, sono abituato ad
inserire esplicitamente il "comando" oggetto di find e non
ho pensato minimamente ad eseguirlo senza.


 find / -name "A*" -o -name "*.txt"
 
Ecco, giusto per andare OT, esiste un equivalente di find su Windows[1] che 
non richieda l'installazione di software di terze parti (e.g. cygwin)? :)
 
Enrico
[1] in teoria il comando find esiste su windows, ma fa altre cose

 non richieda l'installazione di software di terze parti (e.g. cygwin)? :)
 
Cerca le Berkeley Utilities  [Copyright OPENetwork and PMC]   (berk.zip).
Oltre a find, ci trovi anche praticamente "tutto" il resto!
 
 
-- 
+-----#41--------------------Diamanti di saggezza.---------------------------+

 Cerca le Berkeley Utilities
 
"... che non richieda l'installazione di software di terze parti" :)
 
Enrico