GNU/Linux >> Linux Esercitazione >  >> Linux

Sostituisci find con fd su Linux

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.


Linux
  1. Sostituisci le virgolette intelligenti con il comando sed di Linux

  2. Trova file e directory su Linux con il comando find

  3. Sostituisci le pagine man con Tealdeer su Linux

  4. Un modo semplice per sostituire i file duplicati con hardlink?

  5. Trova un file con i comandi Trova e individua in Linux

Comando Trova Linux con esempi pratici

Trova account utente con password vuota in Linux

Come trovare applicazioni installate con dimensioni installate in Linux

Trova le informazioni sull'hardware del sistema Linux con Hwinfo

Come trovare file con il comando fd in Linux

Tutorial comando trova Linux (con esempi)