|
|
FIND
Section: Misc. Reference Manual Pages (1L) Index
Return to Main Contents
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 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.
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).
Index
- NOME
-
- SINTASSI
-
- DESCRIZIONE
-
- ESPRESSIONI
-
- OPZIONI
-
- TEST
-
- AZIONI
-
- OPERATORI
-
- VEDERE ANCHE
-
|