Hostwinds Tutorial

Cerca risultati per:


Sommario


Elenco file
trova
individuare
ls
Gnomo
Ricerca per nome
trova
individuare
Gnomo
Ricerca per dimensioni
du
trova
individuare
Gnomo
Trovare file vuoti
trova
individuare
Gnomo
Eseguendo le azioni su corrispondenza
trova
individuare
Gnomo
Ricerche di raffinazione con il comando grep
Conclusione

Come trovare i file su Ubuntu con terminale

Tag: Cloud Servers,  Dedicated Server 

Elenco file
trova
individuare
ls
Gnomo
Ricerca per nome
trova
individuare
Gnomo
Ricerca per dimensioni
du
trova
individuare
Gnomo
Trovare file vuoti
trova
individuare
Gnomo
Eseguendo le azioni su corrispondenza
trova
individuare
Gnomo
Ricerche di raffinazione con il comando grep
Conclusione

In questo tutorial, esamineremo una serie di metodi per trovare file e directory (ovvero cartelle) in Ubuntu 20.04 LTS, come trovare tutti i file con un .vecchio estensione o trovare tutti i file e le directory più grandi di 2 GB.Esamineremo anche come eseguire uno o più comandi su ciascun file trovato.

Si noti che uno dei comandi che useremo è individuare, che non viene fornito in modo nativo con Ubuntu.Il individuare Il comando è spesso più veloce di trova Perché mantiene un database di tutti i file che viene aggiornato ogni 24 ore.Il individuare Il comando può essere installato come segue:

sudo apt install mlocate

Poiché tutto nei sistemi operativi simili a UNIX, incluso Ubuntu, è considerato un file, il termine "file" indicherà anche la "directory" se non diversamente chiamato.Inoltre, gli esempi dell'ambiente desktop si basano su Gnomo.Per imparare a accedere al tuo computer Ubuntu remoto usando GNOME, vedi Utilizzo di Windows Remote Desktop con Ubuntu 20.04 TLS.

Con ciò, iniziamo.

Elenco file

Per elencare tutti i file dalla directory corrente verso il basso, è possibile utilizzare i seguenti comandi:

trova

Il disadorno trova Comando Elenca ricorsivamente tutti i file dalla directory corrente:

find

individuare

Il individuare Il comando è simile a trova ma richiede uno schema (il carattere jolly in questo caso):

locate *


La velocità di individuare Ha un prezzo, tuttavia.I file di recente modificati potrebbero non essere riflessi nel database.Per risolvere questo problema, è possibile aggiornare il database con sudo aggiornato b (che potrebbe richiedere del tempo) o usare il -e opzione che elenca solo i file esistenti al momento individuare il comando è eseguito (essenzialmente equivalente a trova):

locate -e *

ls

Usando il ricorsivo -R l'opzione consente lo standard ls comanda di produrre risultati simili:

ls -Rlha

Gnomo

È possibile produrre risultati analoghi utilizzando l'ambiente desktop GNOME:

Ricerca per nome

Nei seguenti esempi, cercheremo tutti i file con il .vecchio estensione.

trova

Perché stiamo cercando tutti i file, utilizziamo il sudo comanda per evitare errori di autorizzazione e avviare la ricerca dalla directory principale (/):

sudo find / -iname *.old


Nota che il -nomino opzione ignora il caso mentre -nome non.

individuare

Di seguito, il -io l'opzione ignora il caso:

sudo locate -i *.old


È interessante notare, anche con il -e Opzione, la individuare Il comando non trova il /run/blkid/blkid/tab.old file (mentre trova fa).

Gnomo

Senza il carattere jolly (*), l'applicazione dei file desktop gnome fornisce essenzialmente le stesse informazioni del trova comando:

Ricerca per dimensioni

Diciamo che vorremmo trovare tutti i file più grandi di 50 Mib.Per questo compito, possiamo aggiungere il du comando al nostro elenco di probabili sospetti:

du

Il du Il comando è stato progettato appositamente per questa attività:

sudo du / -ha --threshold=50M

Il -h l'opzione fornisce dimensioni di file (umane) e le -un L'opzione include file e directory:


Per sopprimere i messaggi di errore (quattro), è possibile utilizzare il 2>&- discussione.Puoi anche ordinare per dimensione del file:

sudo du / -ha --threshold=50M 2>&- | sort -h


L'ultima riga mostra che il disco contiene 2,8 Gib di dati in totale.

trova

Quanto segue trova tutti i file (esclusi le directory) più grandi di 50 MIB:

sudo find / -size +50M


Per visualizzare le dimensioni di ciascun file in byte, è possibile utilizzare il -ls opzione (e 2>&- Per rimuovere i messaggi di errore):

sudo find / -size +50M -ls 2>&-

La settima colonna fornisce la dimensione di ciascun file, in byte.Per visualizzare solo il percorso del file, il tipo e le dimensioni, è possibile utilizzare il -printf Opzione, come mostrato:

sudo find / -size +50M -printf "%p %y %s bytes\n" 2>&- | column -t


Il % p Restituisce il nome file, %y il tipo di file, %S la dimensione in byte e \n Genera un carattere newline (per i dettagli, eseguire uomo trova).

Il colonna -t Il comando crea colonne basate su caratteri di spazi bianchi.Si noti che 140737477885952 byte è poco meno di 128 PIB, il che è chiaramente errato.Segue una interpretazione più accurata:

sudo find / -size +50M -printf "%p %y %k KiB\n" 2>&- | column -t


In quanto sopra, %K fornisce la dimensione del file in KIB (al contrario di %S byte).

individuare

Perché il individuare Il database del comando non contiene informazioni sulla dimensione del file, non è possibile elencare file più grandi di 50 MIB esclusivamente individuare.

Gnomo

L'applicazione dei file desktop di Gnome fornisce tipico GUI Risultati:

Come si può vedere sopra, l'ordinamento per la colonna dimensione non è del tutto utile rispetto alla ricerca di tutti i file più grandi di 50 MIB.Il du o trova I comandi sono più appropriati per tale attività.

Trovare file vuoti

Numerosi comandi sopra menzionati hanno opzioni specificamente per trovare file vuoti.Li esamineremo il prossimo.

trova

Per il trova comando, questa attività è semplice:

sudo find /tmp -empty -type f,d

Questo comando trova tutti i file e le directory vuoti (ovvero, -Type F, D) all'interno del /TMP cartella, come mostrato:


Ma qual è quale?Come sopra, possiamo usare -printf e colonna come segue:

sudo find /tmp -empty -type f,d -printf "%p %y %s bytes\n" | column -t


Si noti che ogni directory vuota richiede che esistano 4096 byte (4 kib) nel file system Ubuntu.Ecco un esempio di una singola directory vuota e un singolo file vuoto:

individuare

Ancora una volta, perché il individuare Il database non contiene informazioni sulla dimensione del file, non è possibile trovare direttamente file/directory vuote utilizzando solo il individuare comando.

Gnomo

L'applicazione dei file desktop di Gnome fornisce risultati relativamente non di elpizzazione:

Si dovrebbe fare molti clic per identificare tutti i file vuoti utilizzando l'ambiente desktop GNOME.

Eseguendo le azioni su corrispondenza

Ora che sappiamo come trovare file, potremmo voler eseguire azioni su di loro;come eliminare tutto *.vecchio File.

trova

Il trova comandi -exec L'opzione esegue il comando fornito una volta per ciascun file abbinato.Per esempio:

sudo find / -iname "*.old" -exec echo {} \;

In breve, questo esegue il eco comando su ciascuno .vecchio file trovato.Qui, il {} La sintassi rappresenta ogni file di corrispondenza.Quindi, se vmlinux.old è un file corrispondente, quindi il comando echo vmlinux.old è eseguito.Il punto e virgola viene utilizzato per indicare la fine della stringa di comando seguendo il -exec opzione.Poiché il punto e virgola ha un significato speciale, deve essere fuggito con i personaggi di Backslash (\), come segue:


Per eliminare tutto *.vecchio file da /Home/Karlito directory (o ~ Directory), è possibile eseguire il seguente comando:

sudo find . -iname "*.old" -exec rm -f {} \;

Possiamo vedere che tutti i file in ~ La directory è stata rimossa:

individuare

Il individuare Il comando non ha un -exec opzione.Tuttavia, possiamo emulare questa funzionalità usando il Xargs comando:

sudo locate -i "*.old" | xargs -0 echo


Il -0 l'opzione consente Xargs per gestire correttamente i caratteri del nome file atipico.

Per rimuovere tutto *.vecchio file da /Home/Karlito Directory, puoi eseguire:

sudo locate -i "/home/karlito/*.old" | xargs rm


Allo stesso modo, per rimuovere tutto .vecchio file elencati in individuare Database del comando (generalmente tutto *.vecchio file su disco), è possibile eseguire:

sudo locate -i "*.old" | xargs rm

Gnomo

Per eseguire la stessa azione utilizzando l'applicazione File, prima cerca tutti i file con a.vecchio estensione:

Quindi, selezionare tutti i file di corrispondenza premendo CTRL + A. Quindi, premere il tasto Elimina e selezionare il Elimina pulsante:

Possiamo confermare la cancellazione del prompt dei comandi come segue:


Perché il Xargs Il comando è veloce, flessibile e può essere usato con molti altri comandi, generalmente ha senso usarlo per la maggior parte degli scenari.Ad esempio, le seguenti copie tutti i file contenenti "backup" in una directory chiamata "backups" nella cartella domestica dell'utente:

sudo find / -type f -iname "*backup*" -print0 | xargs -0 -I {} sh -c 'stat -c "%n %s bytes" {}; cp {} ~/backups'

Segue una spiegazione dettagliata di ogni comando e opzione:

  • sudo Consente il trova comanda la ricerca senza riscontrare errori negati dall'autorizzazione.
  • trova Un comando che cerca i file (eseguire uomo trova per dettagli).
  • / Avvia la ricerca dalla directory principale.
  • -Type f Cerca file (e non directory).
  • -iname "*backup*" Mentre ignora il caso, istruisce il trova comanda per trovare tutti i file contenenti "backup" da qualche parte nel nome file.Nota l'uso dei due (*) personaggi jolly.
  • -print0 Formatta l'output del trova comando in modo tale che possa essere consumato da altri comandi, incluso Xarg.In particolare, -print0 Consente a nomi di file che contengono neofiti o altri tipi di spazio bianco da interpretare correttamente da programmi che possono elaborare tale input.Nota che il -Stampa0 l'opzione corrisponde a -0 Opzione del Xargs comando.
  • Xargs Converte il suo input standard in argomenti per altri comandi, come il statistica e cp comando.
  • -0 Prepara il Xargs comanda di ricevere input che potrebbero contenere spazio bianco, segni di preventivo o backsheshes.
  • -IO L'opzione capitale "i" consente l'input Xargs essere usato in più di un posto, come via {} gettone.
  • sh -c Questo invoca un interprete di riga di comando separato (shell) ed esegue i comandi passati ad esso.In questo caso, 'stat -c " %n %s bytes" {};cp {} ~/backups '.Questo secondo shell consente Xargs Per eseguire più comandi utilizzando il file {} gettone.
  • stat -c " %n %s bytes" {} Visualizza il nome %n e dimensioni %S del file contenuto in {} Token (in byte).
  • ; Il punto e virgola consente di eseguire due o più comandi sulla stessa riga.
  • cp {} ~/backups Copia il dato {} file a ~/backup directory.

Mettere insieme tutto ciò si traduce in output in modo simile a quanto segue:

In quanto sopra, possiamo vedere tutti i file che sono stati teoricamente copiati ~/backup.È teorico in quanto non tutti i file sono stati effettivamente copiati:

Questo è un punto importante: non c'erano problemi rispetto alla visualizzazione statistica informazioni correlate ma c'erano problemi per il cp comando (che non sono riportati).

Ricerche di raffinazione con il comando grep

Successivamente, cercheremo il contenuto dei file di corrispondenza per trovare una o più parole chiave.Per iniziare, esamineremo tutto *.tronco d'albero file per occorrenze di avvertimento.Per fare ciò, usiamo l'onnipresente grep comando:

sudo find / -iname '*.log' -type f -print0 | xargs -0 grep warning

Esecuzione dei comandi prima del tubo ( | ) L'operatore restituisce l'elenco previsto di *.registrazione File.Tuttavia, l'esecuzione dell'intera riga di comando restituisce per autorizzazione del file negato errori:


Questo perché il grep Il comando richiede anche sudo elevazione.Pertanto, la seguente riga di comando produce i risultati desiderati (entrambi -nomino e -io Ignora il caso):

sudo find / -iname '*.log' -type f -print0 | xargs -0 sudo -i grep warning

Per trovare tutto *.tronco d'albero file contenenti avvertimento, critico, e/o errore, possiamo usare il logico o ( | ) operatore, che deve essere fuggito per non essere confuso con l'operatore di tubi standard:

sudo find / -iname '*.log' -type f -print0 | xargs -0 sudo grep -l -i 'warning\|critical\|error'

L'opzione "L" minuscola -l Visualizza l'elenco dei file corrispondenti e non il contenuto associato:

Conclusione

Questo tutorial ha confrontato e contrastato diversi modi per trovare file in Ubuntu 22.04 LTS.Ha anche fornito tecniche per l'esecuzione di comandi su file trovati.I sistemi operativi simili a Unix, incluso Ubuntu, offrono un ambiente di linea di comando estremamente ricco per aiutarti a gestire il tuo computer/server Ubuntu.

Scritto da Karlito Bonnevie  /  giugno 20, 2022