Il comando "ls" su Linux: visualizzare file e cartelle e trovare gli ultimi file modificati
Sommario:
- Linux
find
Sintassi dei comandi - Trova file per nome
- Trova file per estensione
- Trova file per tipo
- Trova file per dimensione
- Trova file per data di modifica
- Trova file per autorizzazioni
- Trova file per proprietario
- Trova ed elimina file
- Conclusione
Il comando
find
è uno degli strumenti più potenti nell'arsenale degli amministratori di sistema Linux. Cerca file e directory in una gerarchia di directory in base a un'espressione data dall'utente e può eseguire azioni specificate dall'utente su ciascun file corrispondente.
È possibile utilizzare il comando
find
per cercare file e directory in base a autorizzazioni, tipo, data, proprietà, dimensioni e altro. Può anche essere usato in combinazione con altri strumenti come
grep
o
sed
.
Linux
find
Sintassi dei comandi
La sintassi generale per il comando
find
è la seguente:
find
- L'attributo
options
controlla il trattamento dei collegamenti simbolici, delle opzioni di debug e del metodo di ottimizzazione. L'attributopath…
definisce la directory o le directory di partenza in cui find cercherà i file. L'attributoexpression
è costituito da opzioni, modelli di ricerca e azioni separate da operatori.
Per cercare i file in una directory, l'utente che richiama il comando
find
deve disporre delle autorizzazioni di lettura per quella directory.
Diamo un'occhiata al seguente esempio:
find -L /var/www -name "*.js"
- L'opzione
-L
(opzioni) indica al comandofind
di seguire i collegamenti simbolici./var/www
(percorso…) specifica la directory che verrà cercata. (Espressione)-name "*.js
dice afind
di cercare i file che terminano con.js
(file JavaScript).
Trova file per nome
La ricerca di file per nome è probabilmente l'uso più comune del comando
find
. Per trovare un file usando il suo nome, l'opzione
-name
seguito il nome del file che stai cercando.
Ad esempio, per cercare un file chiamato
document.pdf
nella directory
/home/linuxize
dovresti usare il seguente comando:
find /home/linuxize -type f -name document.pdf
Per eseguire una ricerca senza distinzione tra maiuscole e minuscole, modificare l'opzione
-name
con
-iname
:
find /home/linuxize -type f -iname document.pdf
Il comando sopra corrisponderà a "Document.pdf", "DOCUMENT.pdf"..etc.
Trova file per estensione
La ricerca di file per estensione equivale alla ricerca di file per nome. Ad esempio, per trovare tutti i file che terminano con
.log.gz
nella
.log.gz
/var/log/nginx
è possibile utilizzare:
find /var/log/nginx -type f -name '*.log.gz'
È importante ricordare che quando si utilizza il carattere jolly, è necessario citare il modello o sfuggire al simbolo asterisco
*
con la barra rovesciata
\
modo che non venga interpretato dalla shell.
Per trovare tutti i file che non corrispondono a regex
*.log.gz
puoi usare l'opzione
*.log.gz
. Ad esempio, per trovare tutti i file che non finiscono in
*.log.gz
dovrai usare:
find /var/log/nginx -type f -not -name '*.log.gz'
Trova file per tipo
A volte potrebbe essere necessario cercare tipi di file specifici come file normali, directory o collegamenti simbolici. In Linux, tutto è un file.
Per cercare i file in base al loro tipo, utilizzare l'opzione
-type
e uno dei seguenti descrittori per specificare il tipo di file:
-
f
: un file normaled
: directoryl
: collegamento simbolicoc
: dispositivi a caratterib
: dispositivi a blocchip
: named pipe (FIFO)s
: socket
Ad esempio, per trovare tutte le directory nella directory di lavoro corrente, utilizzare:
find. -type d
L'esempio comune sarebbe quello di modificare in modo ricorsivo le autorizzazioni del file del sito Web in
644
e le autorizzazioni della directory in
755
utilizzando il comando
chmod
:
find /var/www/my_website -type d -exec chmod 0755 {} ;
find /var/www/my_website -type f -exec chmod 0644 {} ;
Trova file per dimensione
Per trovare i file in base alla dimensione del file, passare il parametro
-size
insieme ai criteri di dimensione. È possibile utilizzare i seguenti suffissi per specificare la dimensione del file:
-
b
: blocchi da 512 byte (impostazione predefinita)c
: bytew
: parole a due bytek
: KilobyteM
: MegabyteG
: Gigabyte
Il seguente comando troverà tutti i file di esattamente
1024
byte all'interno della
/tmp
:
find /tmp -type f -size 1024c
Il comando
find
consente inoltre di cercare file di dimensioni maggiori o inferiori a una dimensione specificata.
Nel seguente esempio, stiamo cercando tutti i file inferiori a
1MB
all'interno della directory di lavoro corrente. Notare il simbolo meno
-
prima del valore della dimensione:
find. -type f -size -1M
find. -type f -size +1M
Puoi anche cercare file all'interno di un intervallo di dimensioni. Il seguente comando troverà tutti i file tra
1
e
2MB
:
find. -type f -size +1M -size 21M
Trova file per data di modifica
Il comando
find
può anche cercare i file in base all'ultima modifica, all'accesso o al tempo di modifica.
Come per la ricerca per dimensione, utilizzare i simboli più e meno per "maggiore di" o "minore di".
Diciamo che qualche giorno fa hai modificato uno dei file di configurazione di dovecot, ma hai dimenticato quale. Puoi facilmente filtrare tutti i file nella directory
/etc/dovecot/conf.d
che termina con
.conf
e sono stati modificati negli ultimi cinque giorni con:
find /etc/dovecot/conf.d -name "*.conf" -mtime 5
Ecco un altro esempio di filtraggio dei file in base alla data di modifica utilizzando l'opzione
-daystart
. Il comando seguente elencherà tutti i file nella directory
/home
che sono stati modificati
30
o più giorni fa:
find /home -mtime +30 -daystart
Trova file per autorizzazioni
L'opzione
-perm
consente di cercare file in base alle autorizzazioni dei file.
Ad esempio, per trovare tutti i file con autorizzazioni esattamente
775
nella directory
/var/www/html
, dovresti usare:
find /var/www/html -perm 644
È possibile aggiungere il prefisso alla modalità numerica con meno
-
o barra
/
.
Quando si usa slash
/
come prefisso, almeno una categoria (utente, gruppo o altri) deve avere almeno i rispettivi bit impostati affinché un file corrisponda.
Si consideri il seguente comando di esempio:
find. -perm /444
Il comando sopra abbinerà tutti i file con permessi di lettura impostati per utente, gruppo o altri.
Se meno
-
viene utilizzato come prefisso, è necessario impostare il file affinché corrisponda almeno ai bit specificati. Il seguente comando cercherà i file che dispongono dell'autorizzazione in lettura e scrittura per il proprietario e il gruppo e sono leggibili da altri utenti:
Trova file per proprietario
Per trovare file di proprietà di un determinato utente o gruppo, utilizzare le opzioni
-user
e
-group
.
Ad esempio, per cercare tutti i file e le directory di proprietà dell'utente
linuxize
, dovresti eseguire:
find / -user linuxize
Ecco un esempio del mondo reale. Supponiamo che tu voglia trovare tutti i file di proprietà dell'utente
www-data
e modificare la proprietà dei file corrispondenti da
www-data
a
nginx
:
find / -user www-data -type f -exec chown nginx {} ;
Trova ed elimina file
Per eliminare tutti i file corrispondenti, aggiungi l'opzione
-delete
alla fine dell'espressione di corrispondenza.
Assicurati di utilizzare questa opzione solo quando sei sicuro che il risultato corrisponda ai file che desideri eliminare. È sempre una buona idea stampare i file corrispondenti prima di utilizzare l'opzione
-delete
.
Ad esempio per eliminare tutti i file che terminano con
.temp
da
/var/log/
dovresti usare:
find /var/log/ -name `*.temp` -delete
Utilizzare l'opzione
-delete
con estrema cautela. La riga di comando trova viene valutata come espressione e se si aggiunge prima l'opzione
-delete
, il comando eliminerà tutto sotto i punti di partenza specificati.
Quando si tratta di directory,
find
può eliminare solo directory vuote come
rmdir
.
Conclusione
Ti abbiamo mostrato come usare il comando
find
con varie opzioni e criteri.
Questo articolo dovrebbe darti una comprensione fondamentale di come individuare i file sui tuoi sistemi Linux. Puoi anche visitare la pagina man
find
e leggere tutte le altre potenti opzioni del comando
find
.
Come estrarre file CAB usando gli strumenti da riga di comando in Windows 10/8/7
Puoi decomprimere uno o più file CAB compressi compressi utilizzando strumenti da riga di comando incorporati di Windows come expand.exe, makecab ed extrac32.
Come leggere un file riga per riga in bash
Quando scrivi gli script di Bash, a volte ti troverai in situazioni in cui devi leggere un file riga per riga. Ad esempio, potresti avere un file di testo contenente dati che dovrebbero essere elaborati dallo script.
Come rimuovere file e directory usando la riga di comando di linux
In questo tutorial, ti mostreremo come utilizzare il comando rm per rimuovere file e directory attraverso esempi e spiegazioni delle opzioni rm più comuni.