Inizio
/
Tutorial SSH
/
Come cercare file e cartelle via SSH

Come cercare file e cartelle via SSH

In alcuni casi, avrai bisogno di trovare la location di un file specifico o di cercare un testo specifico in tutti i file in una cartella. SSH fornisce due comandi diversi, che possono essere usati per ottenere questi risultati. Per cercare la posizione di un file, puoi usare il comando find. Find è uno strumento molto potente e accetta vari argomenti, permettendoti di specificare termini di ricerca specifici (ad esempio, ricerca per nome, per tipo o anche per ultima modifica).

Per esempio, per cercare un file chiamato myFile.txt nella cartella attuale (e tutte le sottocartelle), dovresti usare il seguente comando:

find . -name myFile.txt

Se non sei sicuro del nome del file o vorresti trovare una parte del nome, puoi usare un wildcard:

find . -name "myFile*"

Se volessi avere una lista delle sole cartelle e lasciare i file fuori dal risultato:

find . -type d

O se vuoi filtrare solo i file modificati negli ultimi 2 giorni, dovresti usare:

find . -mtime -2

Puoi anche cercare un testo preciso nel contenuto dei file. Il comando che dovresti usare, in questo caso, è grep. Grep è uno strumento molto potente e accetta svariati argoment. Per una lista completa puoi controllare le pagine del manuale digitanto man grep.

Un esempio di utilizzo di grep per trovare un determinato testo può essere trovato qui sotto:

grep  "database" configuration.php

Il comando qui sopra dice a grep di cercare la stringa “database” nel file configuration.php e mostra la linea che la contiene. Se non sai quale file contiene il testo, puoi usare:

grep -r -H "database" *

Questo dirà a grep di cercare in maniera ricorsiva (opzione -r) e fornire i risultati in formato human-readable (opzione -H) per la stringa “database” in tutti(*) i file nella cartella attuale.

Per fare una lista soltanto dei nomi dei file che contengono la stringa che stai cercando, puoi usare l’argomento -l:

grep -l "database" *

Questo mostrerà i file contenenti la parola “database“, ma non darà mostrerà la linea che la contiene.

Grep può anche essere usato per filtrare i risultati di altri comandi. Per esempio, la linea di sotto darà come risultato solo configuration.php:

ls -la | grep configuration.php

In alcuni rari casi, find e grep potrebbero non essere utili. Ad esempio, per cercare un certo file nell’intero server, sarebbe meglio usare un comando alternativo –  whereis or which:

whereis perl

o

which perl

L’esecuzione dei comandi qui sopra localizzerà il binary perl e mostrerà il percorso verso esso.

Condividi questo articolo