|
FIND(1L) manual page
Table of Contents
find - cerca i file in una gerarchia di directory
find
[percorso...] [espressione]
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.
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.
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 assumendo che le directory contengano 2 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 2
link hard: il suo nome e il suo campo `.'. Inoltre, ognuna delle sue sotto-directory
(se ce ne sono) ha un campo `..' lincato a quella directory. Quando find sta
esaminando una directory, dopo aver assunto che ci siano 2 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.
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 settati per il file.
- -perm +mode
- Uno qualsiasi dei bit di
permesso in mode è settato 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.
- -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 settata
la variabile d'ambiente POSIXLY_CORRECT, nel qual caso sono usati blocchi
da 512 byte.
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 .
locate (1L)
, locatedb (5L)
, updatedb (1L)
, xargs (1L)
Finding Files (Info
in linea, o stampato).
Table of Contents
|