Salta l'introduzione Italia - Italiano
HP.com Italia Prodotti e Servizi Supporto e Drivers Soluzioni Come Acquistare
» Contatta HP
Altre opzioni
HP.com Italia
Uso di HP-UX: Server e workstation HP > Capitolo 2 Lavorare con i file e le directory

Ricerca di file usando find

» 

Documentazione tecnica

Libro completo in PDF
» Feedback
Inizio contenuto

 » Sommario

 » Glossario

 » Indice

È possibile usare il comando find per cercare attraverso una directory e le sue sottodirectory i file che soddisfano determinati criteri. Poi, è possibile eseguire un comando sui file trovati.

Reperimento di file che si abbinano ad un pattern

Sebbene la sintassi di find possa essere complessa, può essere di aiuto nell’usare HP-UX in modo più produttivo. Si tratta di un comando potente e flessibile. Tuttavia, può eseguire molto lentamente, specialmente se sta eseguendo la ricerca in molte directory.

Supponiamo che si desideri visualizzare tutti i file della directory attuale e delle sue sottodirectory che iniziano con d. Inserire:

find(1)

$ find . -name 'd*'

Il punto (.) fa in modo che find esegua la ricerca nella directory attuale e nelle sue sottoirectory. L’opzione -name seguita da un nome file o da un pattern di nome file (in questo caso d*) dice a find di cercare tutti i nomi file che coincidono con quel pattern. In questo esempio, find cercherà tutti i nomi di file che iniziano con d.

Da notare che d* è racchiuso da virgolette semplici 'd*'. Se si usa un pattern di nome file nel comando find, occorre inserirlo tra virgolette in modo che la shell lo interpreterà in modo corretto.

Reperimento di file più recenti di un determinato file

Supponiamo che si desideri visualizzare tutti i file modificati dopo un determinato file. Per visualizzare tutti i file più recenti di myfile nella directory /home/leslie e nelle sue sottodirectory, inserire:

$ find /home/leslie -newer myfile

Questo esempio può essere letto come segue: nella directory /home/leslie e nelle sue sottodirectory, trovare tutti i file modificati dopo myfile. (per stabilire quando un file sia stato modificato l’ultima volta, usare il comando ll).

Esecuzione di comandi sui file

È possibile eseguire i comandi sui file localizzati con il comando find. Supponiamo che si desideri rimuovere tutti i file con estensione .tmp nella directory attuale e nelle sue sottodirectory. Inserire:

$ find . -name '*.tmp' -exec rm {} \;

Questo esempio trova e visualizza sullo schermo tutti i file della directory attuale e delle sue sottodirectory che terminano in .tmp, poi cancella tali file. L’opzione -exec provoca l’esecuzione del seguente comando (rm). Le parentesi { } rappresentano i file trovati con il comando find. Il punto e virgola che termina la stringa exec viene ignorato con una barra inversa (\;).

Uso degli operatori logici

La sintassi di find include gli operatori booleani logici NON, E, ed O.

Per trovare i file che non coincidono con un pattern specifico, usare l’operatore logico NON, il punto esclamativo (!). Dopo aver usato questo operatore, occorre usare le opzioni per definire gli attributi del file come il nome file. Poi, si trovano i file che non hanno gli attributi specificati.

Ad esempio, per trovare tutti i file in /tmp che non appartengono a leslie, usare questo comando:

$ find /tmp \( ! -user leslie \)

La \ ignora le parentesi in modo che la shell non le interpreti come caratteri speciali.

Per trovare i file che hanno due attributi distinti, usare l’operatore logico E, espressione -a espressione. Ad esempio, per trovare tutte le directory in / appartenenti a leslie, usate questo comando:

$ find / \( -type d -a -user leslie \)

Per trovare i file che hanno entrambi i due attributi, usare l’operatore logico O, espressione -o espressione. Ad esempio, per rimuovere tutti i file che terminano con .o o sono denominati a.out ai quali non si è fatto accesso per una settimana, usare questo comando:

$find / \( -name a.out -o -name '*.o' \) -atime +7 -exec rm {} \;

Per ulteriori informazioni...

Consultare la manpage find(1) per ulteriori informazioni sull’uso del comando find.

Versione stampabile
Informativa sulla privacy Usando questo sito si accettano le sue condizioni
© Hewlett-Packard Development Company, L.P.