Molti programmatori Linux usano find
comandano ogni singolo giorno della loro carriera. Ma find
fornisce un insieme limitato di voci del filesystem e se devi fare un insieme ampio di find
operazioni, non è nemmeno molto veloce. Quindi, invece, preferisco usare Rust fd
comando perché fornisce impostazioni predefinite ragionevoli che funzionano per la maggior parte dei casi d'uso.
Come dice il suo README, "fd
è un programma per trovare le voci nel tuo filesystem. È un'alternativa semplice, veloce e intuitiva a find
." È dotato di directory traversal parallela, quindi può cercare più directory contemporaneamente. Supporta espressioni regolari (regex) e modelli basati su glob.
Installa fd
Su Linux, puoi installare fd
dal tuo repository software (un elenco di pacchetti disponibili può essere trovato nella pagina fd su Repology.) Ad esempio, su Fedora:
$ sudo dnf install fd-find
Su macOS, usa MacPorts o Homebrew.
In alternativa, puoi utilizzare il gestore di pacchi Cargo di Rust:
$ cargo install fd-find
Usa fd
Per eseguire una ricerca semplice, esegui fd
dopo qualsiasi argomento, come:
$ fd sh
registry/src/github.com-1ecc6299db9ec823/cc-1.0.67/src/bin/gcc-shim.rs
registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/completions/completions.bash
registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/completions/completions.fish
registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/completions/completions.zsh
registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/xtests/run.sh
registry/src/github.com-1ecc6299db9ec823/git2-0.13.18/src/stash.rs
registry/src/github.com-1ecc6299db9ec823/libc-0.2.94/src/unix/solarish
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/cmake/SelectHashes.cmake
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/include/git2/stash.h
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/include/git2/sys/hashsig.h
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/script/backport.sh
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/script/leaks.sh
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/script/valgrind.sh
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/src/config_snapshot.c
[...]
Se vuoi cercare una directory specifica, fornisci il percorso della directory come secondo argomento per fd
, come:
$ fd passwd /etc
/etc/pam.d/passwd
/etc/passwd
/etc/passwd-
/etc/security/opasswd
Per cercare una particolare estensione di file, usa -e
come opzione. Ad esempio:
$ fd . '/home/ssur/exa' -e md
/home/ssur/exa/README.md
/home/ssur/exa/devtools/README.md
/home/ssur/exa/man/exa.1.md
/home/ssur/exa/man/exa_colors.5.md
/home/ssur/exa/xtests/README.md
$
Puoi anche eseguire un comando fornendo -x
o -X
.
- Il
-x/--exec
opzione esegue un comando esterno per ogni risultato di ricerca (in parallelo). - Il
-X/--exec-batch
opzione lancia il comando esterno una volta con tutti i risultati della ricerca come argomenti.
Ad esempio, per trovare ricorsivamente tutti gli archivi ZIP e decomprimerli:
$ fd -e zip -x unzip
Oppure, per elencare tutti i file in una particolare directory che sono stati modificati negli ultimi n numero di giorni, usa il --changed-within
opzione:
$ fd . '/home/ssur/Work/' --changed-within 10d
/home/ssur/Work/wildfly/connector/src/main/java/org/jboss/as/connector/subsystems/data_sources/JdbcDriverAdd.java
/home/ssur/Work/wildfly/connector/src/main/java/org/jboss/as/connector/subsystems/data_sources/JdbcExample.java
[...]
E per cercare tutti i file che sono stati modificati prima di un determinato numero di giorni, usa il --changed-before
n opzione:
$ fd . '/home/ssur/Work/' --changed-before 365d
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Qui, .
agisce come una voce jolly per istruire fd
per restituire tutti i file.
Per saperne di più sulle funzionalità di fd
, consulta la sua documentazione su GitHub.
Conclusione
Una cosa che mi piace particolarmente di fd
è che il modello di ricerca non fa distinzione tra maiuscole e minuscole per impostazione predefinita, il che rende più facile trovare le cose anche quando si ha una conoscenza imprecisa di ciò che si sta cercando. Meglio ancora, automaticamente passa alla distinzione tra maiuscole e minuscole se il modello contiene un carattere maiuscolo.
Un altro vantaggio è che utilizza la codifica a colori per evidenziare diversi tipi di file.
Se stai già utilizzando questo fantastico strumento Rust, facci sapere cosa ne pensi nei commenti.