Cerca nel sito:
ricerca
avanzata

Frasi Celebri...

Questa ragazza e' il sale della trasmissione. -- Quando bolle l'acqua, buttatecela dentro.

Mago Oronzo 

Sondaggio:

Chi ? la donna pi? sexy del mondo?

Cindy Crawford
Jennifer Lopez
Sabrina Ferilli
Maraiah Carey
Manuela Arcuri
Christina Aguilera
Cameron Diaz
Pamela Anderson
Nina Morich
Maria Grazia Cucinotta
Megan Gale
Naomi Campell
Britney Spears

visualizza risultati


 

Espressioni di find: test

I primi due test sono molto semplici da capire: -false restituisce solo il valore falso, mentre -true restituisce solo il valore vero. Altri test che non hanno bisogno della specifica di un valore sono -empty, che restituisce il valore vero se il file è vuoto, e la coppia -nouser / -nogroup, che restituiscono il valore vero se nessuna voce di /etc/passwd o /etc/group corrisponde all'id di utente/gruppo del proprietario del file; è una cosa comune che accade nei sistemi multiutente: viene cancellato un utente, ma nei posti più strani del filesystem restano suoi file, e per la legge di Murphy occupano un sacco di posto.

Naturalmente, è possibile ricercare un utente o un gruppo specifico. I test sono -uid nn e -gid nn. Sfortunatamente non è possibile dare direttamente il nome dell'utente, ma bisogna usare l'id numerico, nn. È possibile usare le forme +nn, che sta per "un valore strettamente maggiore di nn" e -nn, che sta per "un valore strettamente minore di nn";è piuttosto stupido nel caso degli UID, ma sarà comodo con altri test.

Un'altra opzione utile è -type c, che restituisce il valore vero se il file è di tipo c. Le corrispondenze mnemoniche per le scelte possibile sono le stesse che in ls; quindi si ha b per i file block special, c per quelli character special, d per le directory, p per le pipe con nome, l per i link simbolici, e s per le socket. I file regolari sono indicati con una f. Un test correlato è -xtype, che è simile a -type tranne nel caso dei link simbolici. Se non è stato dato -follow, il file a cui si punta viene controllato al posto del link stesso. Completamente scorrelato è il test -fstype tipo; in questo caso viene controllato il filesystem. Credo di aver preso questa informazione dal file /etc/mtab, quello che indica i filesystem che vengono montati; sono sicuro che i tipi nfs, tmp, msdos ed ext2 vengono riconosciuti.

I test -inum nn e -links nn controllano se il file ha numero di inode nn o nn link, mentre -size nn rende vero se il file ha allocato nn blocchi da 512 byte (beh, non precisamente: per i file sparsi i blocchi non allocati vengono contati lo stesso). Dato che al giorno d'oggi i risultati di ls -s non vengono sempre misurati in parti da 512 byte (Linux per esempio usa unità di 1K), è possibile appendere a nn il carattere b per contare in byte, o k per contare in kilobyte.

I bit di permesso vengono controllati con il test -perm modalità. Se modalità non ha segno, i bit di permesso dei file devono combaciare perfettamente. Un - che precede i bit significa che tutti i bit di permesso devono essere impostati, ma non fa assunzioni sugli altri; un + è soddisfatto se uno qualsiasi dei bit è impostato. Ops! Mi dimenticavo di dire che la modalità è scritta in ottale o simbolicamente, come si fa in chmod.

Il prossimo gruppo di test è correlato all'ora di ultimo utilizzo del file; è comodo quando un utente ha riempito il suo spazio, e come al solito ci sono moltissimi file inutilizzati da anni, e di cui si è dimenticato il significato. Il problema è trovarli, e find è l'unica speranza. -atime nn rende vero se il file è stato utilizzato nn giorni fa (ad esempio, con un comando chmod) e -mtime nn se il file è stato modificato per l'ultima volta nn giorni fa. Talvolta si ha bisogno di un tempo più preciso; il test newer file è soddisfatto se il file considerato è stato modificato dopo file. Quindi, dovete semplicemente usare touch con la data desiderata, ed avete fatto. Il find della GNU aggiunge i test -anewer e -cnewer che si comportano in maniera simile, ed i test -amin, -cmin e -mmin, che contano il tempo in minuti invece che in periodi di 24 ore.

Per ultimo, il test che uso più spesso: -name pattern rende vero se il nome del file corrisponde esattamente a pattern, che è più o meno quello che si usa in un ls standard. Perché "più o meno"? Perché naturalmente dovete ricordare che tutti i parametri sono processati dalla shell, e quei bei metacaratteri vengono espansi. Quindi, un test come -name foo* non renderà quello che volete, e dovreste scrivere o -name foo o -name "foo*". Questo è probabilmente uno degli errori più comuni fatti dagli utenti disattenti, quindi scrivetelo a lettere GRANDI sul vostro schermo. Un altro problema è che, come con ls, i punti all'inizio non vengono riconosciuti; per questo potete usare il test -path pattern, che non si preoccupa dei punti e delle barre quando paragona il percorso del file considerato con pattern.

 

successivo
–«  INDICE  »–

 

 

 

 
Powered by paper&pencil (carta&matita ) - Copyright © 2001-2022 Cataldo Sasso