Provided by:
manpages-it_0.3.4-1_all 
NOME
find - cerca i file in una gerarchia di directory
SINTASSI
find [percorso...] [espressione]
DESCRIZIONE
Questa pagina di manuale documenta la versione GNU di find. find
effettua una ricerca negli alberi di directory aventi radice in ognuno
dei nomi di file specificati, valutando da sinistra a destra, in
accordo con le regole di precedenza (si veda la sezione OPERATORI),
l’espressione data finché non ne conosca il valore (è falso il lato
sinistro delle operazioni and, o è vero quello delle or), spostando a
questo punto la propria attenzione sul successivo nome di file.
Il primo argomento che inizia con ‘-’, ‘(’, ‘)’, ‘,’, o ‘!’ è
considerato l’inizio dell’espressione; qualsiasi argomento precedente è
assunto essere un percorso nel quale fare la ricerca, e qualsiasi
argomento successivo è il seguito dell’espressione. Se non è
specificato alcun percorso è usata la directory corrente. Se non è data
nessuna espressione è usata l’espressione ‘-print’.
find esce con stato 0 se tutti i file sono stati processati con
successo, con uno stato maggiore di 0 se accadono degli errori.
ESPRESSIONI
L’espressione è fatta di opzioni (le quali hanno effetto su tutte le
operazioni piuttosto che nell’elaborazione di un file specifico, e
ritornano sempre vero), test (che possono ritornare sia vero che
falso), e azioni (che hanno effetti collaterali e ritornano vero o
falso), tutte separate da operatori. Se l’operatore è omesso è assunto
l’operatore -and. Se l’espressione non contiene altre azioni oltre a
-prune, è effettuata l’azione -print su tutti i file per i quali
l’espressione è vera.
OPZIONI
Tutte le opzioni ritornano sempre vero. Hanno sempre effetto, piuttosto
che essere processate solo quando è raggiunto il loro posto
nell’espressione. Quindi, per chiarezza, è meglio metterle all’inizio
dell’espressione.
-daystart
Misura il tempo (per -amin, -atime, -cmin, -ctime, -mmin, e
-mtime) a partire dell’inizio della giornata attuale piuttosto
che da 24 ore fa.
-depth Processa il contenuto di ogni directory prima della directory
stessa.
-follow
Deferenzia i link simbolici. Implica -noleaf.
-help, --help
Mostra un sunto dell’uso in riga di comando di find ed esce.
-maxdepth livelli
Discende al più livelli (un intero non negativo) livelli di
directory sotto degli argomenti della riga di comando.
‘-maxdepth 0’ fa sì che le azioni e i test vengano applicati
solo agli argomenti della riga di comando.
-mindepth liveli
Non applica nessun test o azione a livelli minori di livelli (un
intero non negativo). ‘-mindepth 1’ fa sì che vengano
processati tutti i file ad eccezione degli argomenti della riga
di comando.
-mount Non discende le directory su altri filesystem. È un nome
alternativo per -xdev, mantenuto per compatibilità con alcune
altre versioni di find.
-noleaf
Non ottimizza la ricerca supponendo che le directory contengano
due sotto-directory in meno del loro numero di link hard ("hard
link count"). Questa opzione è necessaria quando si effettuano
ricerche su filesystem che non seguono le convenzioni Unix sui
link a directory, come i filesystem dei CD-ROM o MS-DOS oppure i
volumi AFS. In un normale filesystem Unix ogni directory ha
almeno due hard link: il suo nome e il suo campo ‘.’. Inoltre,
ognuna delle sue sotto-directory (se ce ne sono) ha un campo
‘..’ collegato a quella directory. Quando find sta esaminando
una directory, dopo aver assunto che ci siano due sotto-
directory in meno del numero di link hard, sa che il resto dei
campi nella directory non sono directory (file ‘foglie’
nell’albero della directory). Se devono essere esaminati solo i
nomi dei file, non c’è bisogno di fare questa assunzione; ciò
incrementa notevolmente la velocità di ricerca.
-version, --version
Mostra il numero di versione di find ed esce.
-xdev Non discende le directory su altri filesystem.
TEST
Gli argomenti numerici possono essere specificati come
+n per i valori maggiori di n,
-n per quelli minori di n,
n se si vuole intendere esattamente n.
-amin n
Il file ha subito l’ultimo accesso n minuti fa.
-anewer file
Il file ha subito l’ultimo accesso prima dell’ultima modifica di
file. -anewer subisce l’effetto di -follow solo se -follow
compare prima di -anewer nella riga di comando.
-atime n
Il file ha subito l’ultimo accesso n*24 ore fa.
-cmin n
Lo stato del file ha subito l’ultima modifica n minuti fa.
-cnewer file
Lo stato del file è stato modificato prima dell’ultima modifica
di file. -cnewer subisce l’effetto di -follow solo se -follow
compare prima di -cnewer nella riga di comando.
-ctime n
Lo stato del file ha subito l’ultima modifica n*24 ore fa.
-empty Il file è vuoto ed è o un file regolare o una directory.
-false Sempre falso.
-fstype tipo
Il file è su un filesystem di tipo tipo. I tipi di filesystem
validi variano tra le diverse varianti di Unix; un elenco
incompleto di tipi di filesystem accettati in alcune versioni di
Unix è: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Si può usare
-printf con la direttiva %F per vedere i tipi dei propri
filesystem.
-gid n L’identificatore (ID) numerico di gruppo del file è n.
-group gruppo
Il file appartiene al gruppo gruppo (sono permessi anche ID
numerici di gruppi).
-ilname modello
Simile a -lname, ma per la corrispondenza non si considerano
diverse le lettere minuscole da quelle maiuscole ("case
insensitive").
-iname modello
Simile a -name, ma per la corrispondenza non si considerano
diverse le lettere minuscole da quelle maiuscole ("case
insensitive"). Per esempio, il modello ‘fo*’ e ‘F??’
corrispondono ai nomi di file ‘Foo’, ‘FOO’, ‘foo’, ‘fOo’, ecc.
-inum n
Il file ha numero di inode n.
-ipath modello
Simile a -path, ma per la corrispondenza non si considerano
diverse le lettere minuscole da quelle maiuscole ("case
insensitive").
-iregex modello
Simile a -regex, ma per la corrispondenza non si considerano
diverse le lettere minuscole da quelle maiuscole ("case
insensitive").
-links n
Il file ha n link.
-lname modello
Il file è un link simbolico il cui contenuto corrisponde al
modello shell modello. I metacaratteri non trattano in modo
speciale i caratteri ‘/’ or ‘.’.
-mmin n
I dati del file sono stati modificati n minuti fa.
-mtime n
I dati del file sono stati modificati n*24 ore fa.
-name modello
Il nome di base del file (il percorso a cui sono state rimosse
le directory iniziali) corrisponde al modello shell modello. I
metacaratteri (‘*’, ‘?’, e ‘[]’) non fanno la corrispondenza con
il ‘.’ all’inizio del nome di base. Per ignorare una directory e
tutti i file che contiene, si usi -prune; si veda l’esempio
nella descrizione di -path.
-newer file
Il file è stato modificato più di recente rispetto a file.
-newer subisce l’effetto di -follow solo se -follow compare
prima di -newer nella riga di comando.
-nouser
Nessun utente corrisponde all’ID numerico dell’utente
proprietario del file.
-nogroup
Nessun gruppo corrisponde all’ID numerico del gruppo
proprietario del file.
-path modello
Il file corrisponde al modello shell modello. I metacaratteri
non trattano in modo speciale i caratteri ‘/’ o ‘.’; così, per
esempio,
find . -path ’./sr*sc’
mostrerà un campo per una directory chiamata ’./src/misc’ (se ne
esiste una). Per ignorare un intero albero di directory, si usi
-prune piuttosto che fare una verifica su ogni file nell’albero.
Per esempio, per saltare la directory ‘src/emacs’ e tutti i file
in essa contenuti, e stampare i nomi degli altri file trovati,
si può usare qualcosa di simile a:
find . -path ’./src/emacs’ -prune -o -print
-perm mode
I bit di permesso del file sono esattamente uguali a mode (in
ottale o simbolico). I mode simbolici usano mode 0 come punto di
partenza.
-perm -mode
Tutti i bit di permesso in mode sono impostati per il file.
-perm +mode
Uno qualsiasi dei bit di permesso in mode è impostato per il
file.
-regex modello
Il nome del file corrisponde all’espressione regolare modello. È
una corrispondenza sull’intero percorso, non una ricerca. Per
esempio, per fare una corrispondenza con un file chiamato
‘./fubar3’, si può usare l’espressione regolare ‘.*bar.’ o
‘.*b.*3’, ma non ‘b.*r3’.
-size n[bckw]
Il file usa n unità di spazio. Di default o se n è seguito da
‘b’, le unità sono blocchi di 512 byte, oppure sono byte se n
seguito da ‘c’, kilobyte se è seguito da ‘k’, parole di 2 byte
se è seguito da ‘w’. La dimensione non conta i blocchi
indiretti, ma conta i blocchi in file sparsi che non sono
realmente allocati.
-true Sempre vero.
-type c
Il file è di tipo c:
b speciale a blocchi (bufferizzato)
c speciale a caratteri (non bufferizzato)
d directory
p named pipe (FIFO)
f file regolare
l link simbolico
s socket
-uid n L’identificativo numerico dell’utente proprietario del file è n.
-used n
Il file ha subito l’ultimo accesso n giorni dopo la sua ultima
modifica.
-user nome_utente
Il file è di proprietà dell’utente nome_utente (sono permessi
anche identificativi numerici di utente).
-xtype c
Analogo a -type finché il file non è un link simbolico. Per i
link simbolici: se non è stato specificato -follow, è vero se il
file è un link a un file di tipo c; se è specificato -follow,
vero se c è ‘l’. In altre parole, per i link simbolici, -xtype
verifica i tipi di file non verificati da -type.
AZIONI
-exec comando ;
Esegue comando; vero se è ritornato lo stato 0. Tutti i
successivi argomenti di find sono considerati argomenti del
comando fino a che non è incontrato un argomento composto da
‘;’. Ovunque compaia negli argomenti del comando, non solo negli
argomenti dov’è da sola come in alcune versioni di find, la
stringa ‘{}’ è rimpiazzata dal nome di file che si sta
attualmente processando. Entrambi questi costrutti possono aver
bisogno di essere prefissi da un ‘\’ (escaped) o racchiusi tra
virgolette per proteggerli dall’espansione della shell. Il
comando è eseguito nella directory di avvio.
-fls file
Vero; simile a -ls ma scrive su file come -fprint.
-fprint file
Vero; scrive l’intero nome del file nel file file. Se file non
esiste quando è lanciato find, è creato; ma se esiste è
troncato. I nomi di file ‘‘/dev/stdout’’ e ‘‘/dev/stderr’’ sono
trattati in modo speciale; fanno riferimento rispettivamente
allo standard output e allo standard error output.
-fprint0 file
Vero; simile a -print0 ma scrive su file come -fprint.
-fprintf file formato
Vero; simile a -printf ma scrive su file come -fprint.
-ok comando ;
Simile a -exec ma chiede prima conferma all’utente (nello
standard input); se la risposta non inizia con ‘y’ o ‘Y’, non
lancia il comando e ritorna falso.
-print Vero; stampa sullo standard output l’intero nome del file
seguito da un newline.
-print0
Vero; stampa sullo standard output l’intero nome del file
seguito da un carattere null. Ciò permette la corretta
interpretazione da parte di programmi che elaborano l’output di
find, dei nomi di file che contengono caratteri di newline.
-printf formato
Vero; stampa formato sullo standard output interpretando le
sequenze di escape ‘\’ e le direttive ‘%’. Le larghezze dei
campi e le precisioni possono essere specificate come nella
funzione C ‘printf’. Diversamente da -print, -printf non
aggiunge un newline alla fine della stringa. Le sequenze di
escape e le direttive sono:
\a Alarm bell.
\b Backspace.
\c Blocca la stampa a partire da questo carattere e scarica
il buffer per l’output.
\f Form feed.
\n Newline.
\r Carriage return.
\t Tab orizzontale.
\v Tab verticale.
\\ Un backslash (‘\’).
Un carattere ‘\’ seguito da un qualsiasi altro carattere è
trattato come un carattere ordinario, e così sono stampati
entrambi.
%% Un segno di percento.
%a Il tempo dell’ultimo accesso al file ritornato nel
formato della funzione C ‘ctime’.
%Ak Il tempo dell’ultimo accesso al file nel formato
specificato da k, che è o ‘@’ o una direttiva per la
funzione C ‘strftime’. I possibili valori per k sono
elencati sotto; alcuni possono non essere disponibili in
tutti i sistemi, a causa delle differenze nella
‘strftime’ tra i vari sistemi.
@ secondi a partire dalle ore 00:00 GMT del 1
Gennaio 1970.
Campi dell’ora:
H ora (00..23)
I ora (01..12)
k ora ( 0..23)
l ora ( 1..12)
M minuti (00..59)
p AM o PM locale
r ora, 12 ore (ore:minuti:secondi [AP]M)
S secondi (00..61)
T ora, 24 ore (ore:minuti:secondi)
X rappresentazione locale dell’ora (H:M:S)
Z zona temporale ("fuso orario") (p.es. MET), o
niente se non è determinabile.
Campi della data:
a abbreviazioni locali dei nomi dei giorni della
settimana (lun..dom)
A nomi completi locali dei giorni della settimana,
a lunghezza variabile (lunedì..domenica)
b abbreviazioni locali dei nomi dei mesi (gen..dic)
B nomi completi locali dei mesi, a lunghezza
variabile (gennaio..dicembre)
c data e ora locale (sab 12 apr 1997 08:06:53)
d giorno del mese (01..31)
D data (mese/giorno/anno)
h analogo a b
j giorno dell’anno (001..366)
m mese (01..12)
U numero di settimana dell’anno con domenica come
primo giorno della settimana (00..53)
w giorno della settimana (0..6)
W numero di settimana dell’anno con lunedì come
primo giorno della settimana (00..53)
x rappresentazione locale della data
(mese/giorno/anno)
y ultime due cifre dell’anno (00..99)
Y anno (1970...)
%b Dimensione (arrotondata) del file in blocchi da 512 byte.
%c Data e ora dell’ultimo modifica dello stato del file nel
formato restituito dalla funzione C ‘ctime’.
%Ck Data e ora dell’ultimo modifica dello stato del file nel
formato specificato da k, che è analogo a quello di %A.
%d Profondità del file nell’albero di directory; 0 indica
che il file è un argomento della riga di comando.
%f Nome del file con le directory iniziali rimosse (solo
l’ultimo elemento).
%F Tipo del filesystem sul quale risiede il file; questo
valore può essere usato per -fstype.
%g Nome del gruppo del file, o ID numerico del gruppo se il
gruppo non ha nome.
%G ID numerico del gruppo del file.
%h Directory iniziali del nome del file (tutto tranne
l’ultimo elemento).
%H Argomento della riga di comando sotto il quale è stato
trovato il file.
%i Numero di inode del file (in decimale).
%k Dimensione (arrotondata) del file in blocchi da 1 Kbyte.
%l Oggetto di un link simbolico (una stringa vuota se il
file non è un link simbolico).
%m Bit di permesso del file (in ottale).
%n Numero di link hard al file.
%p Nome del file.
%P Nome del file rimosso il nome dell’argomento della riga
di comando sotto il quale è stato trovato il file.
%s Dimensione del file in byte.
%t Data e ora dell’ultima modifica al file nel formato
restituito della funzione C ‘ctime’.
%Tk Data e ora dell’ultima modifica al file nel formato
specificato da k, che è analogo a quello di %A.
%u Nome dell’utente proprietario del file, o ID numerico
dell’utente se l’utente non ha nome.
%U ID numerico dell’utente proprietario del file.
Un carattere ‘%’ seguito da un qualsiasi altro carattere è
scartato (mentre è stampato l’altro carattere).
-prune Se non è dato -depth, vero; non discende la directory corrente.
Se è dato -depth, falso; non ha effetto.
-ls Vero; elenca nello standard output il file corrente nel formato
di ‘ls -dils’. Il conteggio dei blocchi è fatto usando blocchi
da 1 Kbyte, a meno che non sia impostata la variabile d’ambiente
POSIXLY_CORRECT, nel qual caso sono usati blocchi da 512 byte.
OPERATORI
Sono elencati in ordine di precedenza decrescente:
( espr )
Forza la precedenza.
! espr Vera se espr è falsa.
-not expr
Identico a ! espr.
espr1 espr2
And (implicito); espr2 non è valutata se espr1 è falsa.
espr1 -a espr2
Identico a espr1 espr2.
espr1 -and espr2
Identico a espr1 espr2.
espr1 -o espr2
Or; espr2 non è valutata se espr1 è vera.
espr1 -or espr2
Identico a espr1 -o espr2.
espr1 , espr2
Lista; sono sempre valutate sia espr1 che espr2. Il valore di
espr1 è scartato; il valore della lista è il valore di espr2.
VEDERE ANCHE
locate(1L), locatedb(5L), updatedb(1L), xargs(1L) Finding Files (Info
in linea, o stampato).
FIND(1L)