.

martedì 17 febbraio 2015

Cercare file in Linux (da terminale e non solo)

Ci sono diversi modi per cercare files e documenti in Linux.
Alcuni prevedono un uso del terminale (che già nell'installazione di base ha le funzioni di ricerca su tutte le distribuzioni), altri mediante comodi strumenti con interfaccia grafica che sono legati alla distribuzione installata.

Analizzerò entrambi i sistemi, evidenziando diverse casistiche.

Terminale

Ricerca tramite terminale



Per una ricerca semplice tramite riga di comando, dove si vuole individuare un files con filtro per date si può digitare:
  • touch --date "2010-01-01" /tmp/start
per impostare in un file temporaneo la data iniziale,
  • touch --date "2011-01-01" /tmp/stop
per impostare in un file temporaneo la data finale,
e poi ricercare tramite il comando "find"
  • find /data/images -type f -newer /tmp/start -not -newer /tmp/end
per cercare nella directory "data/images" solo Files (-type f) con filtro tra le due date impostate in precedenza.

Per abbreviare si può anche sintetizzare utilizzando il seguente comando:
  • find . -type f -newermt 2010-01-01 ! -newermt 2011-01-01
Il ! sostituisce il -not
Il comando sopra scritto cerca in tutti i files della directory dove si è posizionati, filtrando tra le due date.
Aggiungendo il comando "| more" si chiede di bloccare l'elenco generato alla schermata del proprio monitor.
  • find . -type f -newermt 2010-01-01 ! -newermt 2011-01-01 | more
Premendo "invio" si scorre di un rigo, "Barra spaziatrice" per passare avanti di una schermata.
CTRL-C per uscire.


Per cercare una estensione o un tipo di file specifico:
  • find /home/cartellaricerca -iname "*.jpg" -newermt 2010-01-01 -type f
Il comando sopra scritto cerca in tutti i files della directory indicata, filtrata nel nome "*.jpg" a partire dal primo gennaio 2010.
Il parametri "-iname" è assimilabile al parametro "name" con la differenza che il primo è "case insensitive", ovvero non tiene conto delle maiuscole o minuscole".

  • find /home/cartellaricerca -iname "*.c" -mtime -30 -type f
L'opzione "-mtime" con l'aggiunta del numero dei giorni, ricerca i files modificati entro quel periodo.
In sostituzione di "-mtime" si può utilizzare "-atime" per il filtro sulla data di accesso, oppure "-ctime" sulla data di creazione del file.

Altra interessante aggiunta è che si può inviare il risultato della ricerca in un file di testo normalmente poi visualizzabile con un semplice editor.
  • find . -type f -newermt 2010-01-01 ! -newermt 2011-01-01 > output.txt
Il risultato sarà consultabile nel file di testo indicato.
Detto file può anche essere generato in un'altra directory:
ad es:  > ~/tmp/output.txt
Ovvero  > /home/cartellapersonale/tmp/output.txt.

Ovviamente la cartella deve già esistere altrimenti viene restituito un errore.

Per trovare un files in base alla propria dimensione, si può aggiungere il parametro "-size", facendolo seguire dalla dimensione.
  • find /var/www/nome_cartella -type f -size +1024k
Find è un comando molto potente, ma a volte potrebbe risultare lento.
In un altro capitolo analizzeremo i comandi "locate" e "grep" per cercare rispettivamente tramite nome del file o una stringa di testo all'interno di un file.

E' possibile anche ricercare la path di esecuzione di un programma (verificando anche se sia installato o meno) col comando which.
  • which gimp
Se il programma è installato, il sistema ci restituirà un rigo con il percorso del comando.


Find
Ricerca tramite interfaccia grafica



Logo CatfishPer la ricerca tramite programma, è possibile utilizzare Catfish

Il programma ha un'interfaccia abbastanza semplice ed intuitiva.

schermata Catfish

In alto è possibile inserire il termine da ricercare contenuto nel nome del file.

Con l'apertura delle impostazioni avanzate (vedi immagine in alto) attivabile tramite la ruota ad ingranaggio sulla destra, si può ricercare filtrando per data di modifica, oppure per tipo di file - se documento, immagine, cartella etc. o tramite una estensione specifica, col comando + Altro.

Logo PCManFM
Io uso con soddisfazione la ricerca del File manager PCManFM, richiamabile tramite menù o tramite la combinazione Maiusc + CTRL + F.

Find PCManFM

Per attivare il modulo di ricerca (potrebbe non installato di base assieme al programma), bisogna installare anche la libreria libfm-modules e relative dipendenze.
Nelle varie schede ci sono le opzioni avanzate per la ricerca del contenuto del file, del tipo di file, un filtro per la data e per la dimensione.

Ci sono anche altri programmi grafici che svolgono il medesimo lavoro, ma ritengo che sia Catfish ma soprattutto il Find di PCManFM, siano al tempo stesso potenti ma leggeri.

Altri searcher:

Tutti installabili dai repository ufficiali Debian.



Nessun commento :

Posta un commento