Muchos programadores de Linux usan find
comandar todos los días de su carrera. Pero find
proporciona un conjunto limitado de entradas del sistema de archivos, y si tiene que hacer un gran conjunto de find
operaciones, ni siquiera es muy rápido. Entonces, en cambio, prefiero usar Rust fd
comando porque proporciona valores predeterminados sensibles que funcionan para la mayoría de los casos de uso.
Como dice su README, "fd
es un programa para encontrar entradas en su sistema de archivos. Es una alternativa simple, rápida y fácil de usar a find
." Cuenta con recorrido de directorios paralelizado, por lo que puede buscar en varios directorios a la vez. Admite expresiones regulares (regex) y patrones basados en glob.
Instalar fd
En Linux, puede instalar fd
desde su repositorio de software (puede encontrar una lista de paquetes disponibles en la página fd en Repology). Por ejemplo, en Fedora:
$ sudo dnf install fd-find
En macOS, use MacPorts o Homebrew.
Alternativamente, puede usar el administrador de paquetes de Rust's Cargo:
$ cargo install fd-find
Usar fd
Para hacer una búsqueda simple, ejecute fd
después de cualquier argumento, como:
$ 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
[...]
Si desea buscar un directorio específico, proporcione la ruta del directorio como segundo argumento para fd
, como:
$ fd passwd /etc
/etc/pam.d/passwd
/etc/passwd
/etc/passwd-
/etc/security/opasswd
Para buscar una extensión de archivo en particular, use -e
como una opción. Por ejemplo:
$ 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
$
También puede ejecutar un comando proporcionando -x
o -X
.
- El
-x/--exec
La opción ejecuta un comando externo para cada resultado de búsqueda (en paralelo). - El
-X/--exec-batch
La opción inicia el comando externo una vez con todos los resultados de búsqueda como argumentos.
Por ejemplo, para buscar recursivamente todos los archivos ZIP y descomprimirlos:
$ fd -e zip -x unzip
O bien, para enumerar todos los archivos en un directorio particular que se cambiaron en los últimos n número de días, utilice --changed-within
opción:
$ 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
[...]
Y para buscar todos los archivos que se cambiaron antes de un número específico de días, use el --changed-before
n opción:
$ fd . '/home/ssur/Work/' --changed-before 365d
Más recursos de Linux
- Hoja de trucos de los comandos de Linux
- Hoja de trucos de comandos avanzados de Linux
- Curso en línea gratuito:Descripción general técnica de RHEL
- Hoja de trucos de red de Linux
- Hoja de trucos de SELinux
- Hoja de trucos de los comandos comunes de Linux
- ¿Qué son los contenedores de Linux?
- Nuestros últimos artículos sobre Linux
Aquí, .
actúa como una entrada comodín para instruir a fd
para devolver todos los archivos.
Para aprender más sobre las funcionalidades de fd
, consulte su documentación en GitHub.
Conclusión
Una cosa que me gusta especialmente de fd
es que el patrón de búsqueda no distingue entre mayúsculas y minúsculas de manera predeterminada, lo que hace que sea más fácil encontrar cosas incluso cuando tiene un conocimiento impreciso sobre lo que está buscando. Mejor aún, automáticamente cambia a mayúsculas y minúsculas si el patrón contiene un carácter en mayúsculas.
Otro beneficio es que utiliza códigos de colores para resaltar diferentes tipos de archivos.
Si ya está utilizando esta increíble herramienta Rust, háganos saber su opinión en los comentarios.