fd: un'alternativa semplice e veloce per trovare il comando
La maggior parte degli utenti Linux hanno familiarità con il comando find e con i molti casi in cui può essere utilizzato. Oggi esamineremo un'alternativa al comando find, chiamata fd.
fd è uno strumento semplice, veloce e intuitivo pensato per funzionare semplicemente più velocemente rispetto a find. Non intende sostituire completamente trova ma piuttosto offrirti un'alternativa facile da usare con prestazioni leggermente più veloci.
Caratteristiche fd
Alcune delle caratteristiche più importanti di fd:
- Sintassi facile da usare: fd *pattern* invece di find -iname *pattern*.
- L'output colorato è simile a quello del comando ls.
- Prestazioni veloci. I benchmark dello sviluppatore sono disponibili qui.
- Ricerca intelligente con distinzione tra maiuscole e minuscole per impostazione predefinita e passa alla distinzione tra maiuscole e minuscole se il modello contiene un simbolo maiuscolo.
- Per impostazione predefinita, non cerca nei file e nelle directory nascosti.
- Per impostazione predefinita non esamina .gitignore.
- Consapevolezza Unicode.
Come installare fd su Linux
Vedremo come installare fd in diverse distribuzioni Linux utilizzando il gestore pacchetti predefinito come mostrato.
sudo apt install fd-find [On Debian, Ubuntu and Mint]
sudo yum install fd-find [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/fd [On Gentoo Linux]
sudo pacman -S fd [On Arch Linux]
sudo zypper install fd [On OpenSUSE]
sudo apk add fd [On Alpine Linux]
Come usare fd in Linux
Similmente al comando find, fd ha molti casi d'uso, ma iniziamo controllando le opzioni disponibili:
fd -h
OR
fd --help
Diamo un’occhiata ad alcuni esempi. Puoi eseguire fd senza argomenti, l'output è molto simile al comando ls -R.
fd
Nei prossimi esempi fd, utilizzerò un'installazione WordPress predefinita situata in /var/www/html/
per cercare diversi file e cartelle.
Nell'esempio seguente, ho stampato solo i primi 10 risultati per l'output più breve utilizzando il reindirizzamento del pipe con il comando head.
fd | head
Trova tutti i file JPG in Linux
Diciamo che vogliamo trovare tutti i file jpg. Possiamo usare il flag “-e ”
per filtrare per estensione del file:
fd -e jpg
Se vuoi specificare una directory di ricerca, devi semplicemente fornirla come argomento:
fd <pattery> <directory>
Cerca la stringa in tutti i file PHP in Linux
Il flag “-e ”
può essere utilizzato in combinazione con un modello come mostrato:
fd -e php index
Il comando precedente cercherà i file con estensione .php
e conterranno la stringa “index”:
Se vuoi escludere alcuni risultati, puoi utilizzare il flag “-E ”
come mostrato:
fd -e php index -E wp-content
Questo comando cercherà tutti i file con estensione php, contenenti la stringa “index” ed escluderà i risultati dalla directory “wp-content”.
Trova tutti i file JPG e modifica l'autorizzazione
Proprio come find, puoi utilizzare gli argomenti -x
o --exec
per eseguire l'esecuzione parallela di comandi con i risultati della ricerca.
Ecco un esempio in cui utilizzeremo chmod per modificare i permessi dei file immagine
fd -e jpg -x chmod 644 {}
Quanto sopra troverà tutti i file con estensione jpg ed eseguirà chmod 644
.
Ecco alcune spiegazioni utili e l'utilizzo delle parentesi:
{}
– Un segnaposto che verrà modificato con il percorso del risultato della ricerca (wp-content/uploads/01.jpg).{.}
– simile a{}
, ma senza utilizzare l'estensione del file (wp-content/uploads/01).{/}
: un segnaposto che verrà sostituito dal nome base del risultato della ricerca (01.jpg).{//}
: directory principale del percorso scoperto (wp-content/uploads).{/.}
: solo il nome base, senza l'estensione (01).
Conclusione
Questa è stata una breve revisione del comando fd, che alcuni utenti potrebbero trovare più facile da usare e più veloce. Come accennato in precedenza in questo articolo, fd non intende sostituire completamente find, ma piuttosto fornire un utilizzo semplice, una ricerca più semplice e prestazioni migliori. Fd non occupa molto spazio ed è uno strumento utile da avere nel tuo arsenale.