GNU/Linux >> Tutoriales Linux >  >> Linux

Reemplace find con fd en Linux

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.


Linux
  1. Encuentre un archivo con los comandos de búsqueda y localización en Linux

  2. Linux eliminar archivo con tamaño 0

  3. Buscar y reemplazar con sed en directorios y subdirectorios

  4. ¿Cómo reemplazar un archivo en jar con línea de comando en Linux?

  5. Cómo eliminar un archivo con este nombre en Linux:-]???????q

Comando Find de Linux con ejemplos prácticos

Encuentra cuentas de usuario con contraseña vacía en Linux

Cómo encontrar aplicaciones instaladas con tamaño instalado en Linux

Encuentre información de hardware del sistema Linux con Hwinfo

Cómo encontrar archivos con el comando fd en Linux

Tutorial de comando de búsqueda de Linux (con ejemplos)