Come utilizzare il comando fd su Linux

Pubblicato: 2022-01-29
Una finestra di terminale su un PC Linux con un desktop in stile Ubuntu.
Fatmawati Achmad Zaenuri/Shutterstock

Su Linux, fd è un'alternativa più semplice al comando find . Ha una sintassi semplificata, utilizza impostazioni predefinite ragionevoli e ha un comportamento di buon senso integrato. Diamoci un'occhiata.

fd contro trova: qual è la differenza?

Il comando fd non intende sostituire il tradizionale comando find , che è stato su Linux, beh, da sempre. Invece, fd cerca di soddisfare la maggior parte degli usi comuni di find in un modo più diretto e spesso è otto o nove volte più veloce di find . Puoi vedere alcuni dei suoi benchmark nella pagina del repository GitHub del progetto.

10 comandi di base di Linux per principianti
CORRELATI 10 comandi Linux di base per principianti

fd ha un output colorato, simile a quello di alcune modalità ls . È ricorsivo, ma per impostazione predefinita non cerca nelle directory nascoste. Conosce Git e ignorerà automaticamente qualsiasi pattern nel tuo file ".gitignore".

fd non fa distinzione tra maiuscole e minuscole per impostazione predefinita. Tuttavia, se il modello di ricerca contiene una lettera maiuscola, fd opera in una modalità con distinzione tra maiuscole e minuscole. Ovviamente puoi ignorare le impostazioni predefinite, ma, in molti casi, funzionano a tuo favore.

CORRELATI: Come utilizzare tutti i comandi di ricerca di Linux

Installazione di fd

Da Ubuntu 19.04 (Disco Dingo) puoi installare fd direttamente chiamando il pacchetto ufficialmente mantenuto con apt-get . Se stai utilizzando una versione precedente di Ubuntu, controlla le istruzioni di installazione nella pagina dell'hub Git.

Digita quanto segue:

 sudo apt-get install fd-find 

Annuncio pubblicitario

In Ubuntu, il comando è fdfind per evitare uno scontro di nomi con un'altra utility esistente. Se vuoi che sia fd , puoi impostare un alias:

 alias fd=fdtrova 

Per rendere persistente l'alias in modo che rimanga disponibile dopo il riavvio, inserirlo nel file ".bashrc" o ".bash_aliases".

CORRELATI: Come creare alias e funzioni di shell su Linux

Per installare fd su Fedora, digita questo comando:

 sudo dfn install fd-find 

Su Manjaro, digita quanto segue:

 sudo pacman -Syu fd 

fd contro fdfind

Per evitare confusione, abbiamo lasciato il comando con il suo nome predefinito, fdfind , sul nostro PC di prova Ubuntu. fd e fdfind sono esattamente lo stesso comando, come vedrai nel seguente esempio (se chiedi a fdfind di mostrare la sua versione, si chiama "fd"):

 fdfind --versione 

Chiameremo il comando "fed", ma negli esempi useremo Ubuntu "fdfind". Su altre distribuzioni Linux, puoi digitare "fd" invece di "fdfind" per salvare alcune sequenze di tasti.

Ricerche semplici con fd

Se usi fd senza opzioni della riga di comando, si comporta un po' come ls , tranne per il fatto che per impostazione predefinita elenca i file nelle sottodirectory.

Digita quanto segue:

 trova 

L'output viene visualizzato in diversi colori per diversi tipi di file e directory.

Annuncio pubblicitario

Per visualizzare i file di un tipo specifico, utilizzare l'opzione -e (estensione). Tieni presente che non è necessario far precedere l'estensione con un punto (.), né fa distinzione tra maiuscole e minuscole.

Ad esempio, puoi digitare quanto segue:

 fdfind -e png 

Ora, gli unici file elencati sono file di immagine PNG.

Per cercare un singolo file, digita il suo nome sulla riga di comando, in questo modo:

 fdfind index.page 

Il file viene trovato e si trova in una sottodirectory. Non dovevamo dire a fd di cercare ricorsivamente.

Per fare in modo che la ricerca inizi in una directory particolare, includi un percorso di file sulla riga di comando. Il comando seguente avvierà una ricerca nella directory "/etc" e cercherà i file che includono "passwd" nel nome del file:

 fdfind passwd /ecc 

Qui, stiamo cercando tutti i file di codice sorgente C che contengono "coord" nel nome del file:

 fdfind -ec coordina 

Sono stati trovati due file corrispondenti.

fd e Git

Git è un sistema di controllo della versione del codice sorgente estremamente popolare. Se usi Git sul tuo computer, probabilmente usi i file ".gitignore" per dire a Git di quali file dovrebbe occuparsi e quali può ignorare. Per impostazione predefinita, fd rispetta le impostazioni nei tuoi file ".gitignore".

Annuncio pubblicitario

In questa directory, abbiamo un repository Git e un file ".gitignore". Digitiamo quanto segue:

 ls -adl .git* 

Chiediamo a fd di elencare tutti i file che contengono "coord" nel nome del file. Quindi ripeteremo la ricerca e utilizzeremo l'opzione -I (no ignore). Questo dice a fd di ignorare le impostazioni nel file ".gitignore" e di segnalare ogni file corrispondente.

Per fare tutto ciò, digitiamo quanto segue:

 trova la coordinata
 trova coordinata -I 

I due file extra nel secondo set di risultati sono file oggetto. Questi vengono creati quando viene compilato un programma di file. Vengono quindi utilizzati dal linker per creare la versione eseguibile finale del programma.

I file oggetto vengono in genere ignorati dai programmi di controllo della versione del codice sorgente. Vengono rigenerati ogni volta che compili il tuo programma, quindi non devi archiviarne copie. C'è una voce nel file ".gitignore" che indica a Git di ignorare i file oggetto e, per impostazione predefinita, anche fd li ignora.

L'opzione -I (no ignore) obbliga fd a restituire tutto ciò che trova, invece di essere guidato dal file ".gitginore".

Tipi di file e distinzione tra maiuscole e minuscole

Puoi chiedere a fd di cercare directory, file (inclusi quelli eseguibili e vuoti) e collegamenti simbolici. Puoi farlo usando l'opzione -t (tipo), seguita da una delle lettere seguenti:

  • f : file.
  • d : Directory.
  • l : Collegamento simbolico.
  • x : file eseguibile.
  • e : file vuoto.

Quanto segue cerca una directory chiamata immagini:

 fdfind -td immagini 

Annuncio pubblicitario

Viene trovata una corrispondenza, una sottodirectory inferiore a quella corrente.

Vediamo come funziona la distinzione tra maiuscole e minuscole con i modelli di ricerca. Digitiamo quanto segue per cercare prima i file che contengono "geo" nei nomi dei file, quindi quelli che contengono "Geo" nei nomi dei file:

 fdfind -tf geo
 fdfind -tf Geo 

Nel primo comando, abbiamo utilizzato un modello di ricerca minuscolo, che ha fatto sì che fd operasse senza distinzione tra maiuscole e minuscole. Ciò significa che sia "Geo" che "geo" sono corrispondenze valide.

Il nostro secondo comando conteneva un carattere maiuscolo, che faceva sì che fd operasse in modo sensibile alle maiuscole. Ciò significa che solo "Geo" è una corrispondenza valida.

Esecuzione del comando

Il comando fd consente di lanciare un altro comando ed eseguirlo su ciascuno dei file trovati.

Diciamo che sappiamo che c'è un file Zip da qualche parte nel nostro albero di directory del codice sorgente. Possiamo cercarlo usando il seguente comando, che cerca i file con estensione ZIP:

 fdfinf -e zip 

Annuncio pubblicitario

Con l'opzione -x (exec), puoi passare ogni file trovato a un altro comando per essere elaborato da esso. Ad esempio, possiamo digitare quanto segue per chiamare l'utilità di decompressione per decomprimere il nostro file ZIP (il "{}" è un segnaposto che rappresenta il file trovato):

 fdfind -e zip -x decomprimi {}

Questo decomprimerà il file nella directory di lavoro corrente. Se vogliamo che venga decompresso nella directory contenente il file ZIP, possiamo utilizzare uno dei seguenti segnaposto:

  • {} : il percorso completo del file e il nome del file trovato.
  • {/} : il nome del file trovato.
  • {//} : la directory contenente il file trovato.
  • {/.} : il nome del file trovato, senza estensione.

Affinché il nostro file ZIP possa essere trovato e decompresso nella directory che lo contiene, possiamo utilizzare l'opzione unzip -d (directory) e passare il segnaposto della directory principale ( {//} ):

 fdfind -e zip -x unzip {} -d {//} 

Il file ZIP viene quindi individuato e decompresso nella sua directory principale.

La tua ricerca di riferimento?

Poiché copre gli usi più comuni con tale semplicità, fd può facilmente diventare il tuo comando "trova". Ogni volta che hai bisogno delle sue funzionalità più avanzate, puoi sempre tornare a quel veterano esperto, find .

CORRELATI: I migliori laptop Linux per sviluppatori e appassionati