fd: una alternativa simple y rápida al comando Buscar


La mayoría de los usuarios de Linux están familiarizados con el comando find, llamado fd.

fd, es una herramienta simple, rápida y fácil de usar diseñada para funcionar más rápido en comparación con Find. No está destinado a reemplazar completamente a find, sino que le brinda una alternativa fácil de usar que funciona un poco más rápido.

Algunas de las características notables de fd:

  1. Sintaxis fácil de usar: fd * patrón * en lugar de buscar -iname * patrón * .
  2. Salida colorida similar a la del comando ls.
  3. Rendimiento rápido. Los puntos de referencia de los desarrolladores están disponibles aquí.
  4. Búsqueda inteligente que no distingue entre mayúsculas y minúsculas de forma predeterminada y cambia a mayúsculas y minúsculas si el patrón contiene un símbolo en mayúsculas.
  5. No busca en archivos y directorios ocultos de forma predeterminada.
  6. No busca en .gitignore de forma predeterminada.
  7. Conocimiento de Unicode.

Cómo instalar fd en Linux

Vamos a ver cómo instalar fd en diferentes distribuciones de Linux.

Para las distribuciones basadas en Ubuntu y Debian, deberá descargar la última versión de fd desde la página de lanzamiento e instalarla usando los siguientes comandos.

$ wget https://github.com/sharkdp/fd/releases/download/v7.3.0/fd-musl_7.3.0_amd64.deb
$ sudo dpkg -i fd-musl_7.3.0_amd64.deb

En otras distribuciones de Linux, puede instalar fd desde el repositorio predeterminado usando el administrador de paquetes como se muestra.

# dnf install fd-find  [On Fedora]
# pacman -S fd         [On Arch Linux]
# emerge -av fd        [On Gentoo]
# zypper in fd         [On OpenSuse]

Cómo usar fd en Linux

Similar al comando find, fd tiene muchos casos de uso, pero comencemos por verificar las opciones disponibles:

# fd -h
OR
# fd --help

Echemos un vistazo a algunos ejemplos. Puede ejecutar fd sin ningún argumento, la salida es muy similar al comando ls -R.

# fd

En los siguientes ejemplos de fd, usaré una búsqueda predeterminada para diferentes archivos y carpetas.

En el siguiente ejemplo, he tomado solo los primeros 10 resultados para una salida más corta del comando.

# fd | head

Supongamos que queremos encontrar todos los archivos jpg. Podemos usar la bandera “-e” para filtrar por extensión de archivo:

# fd -e jpg

El indicador “-e” se puede usar en combinación con un patrón como este:

# fd -e php index

El comando anterior buscará archivos con extensión php y tendrá la cadena "índice" en ellos:

Si desea excluir algunos resultados, puede usar la marca “-E” de esta manera:

# fd -e php index -E wp-content

Este comando buscará todos los archivos con extensión php, que contengan la cadena "index" y excluirá los resultados del directorio "wp-content".

Si desea especificar un directorio de búsqueda, simplemente debe proporcionarlo como argumento:

# fd <pattery> <directory>

Al igual que buscar, puede usar los argumentos -x o --exec para realizar la ejecución de comandos en paralelo con los resultados de la búsqueda.

Aquí hay un ejemplo en el que usaremos chmod para cambiar los permisos de los archivos de imagen

# fd -e jpg -x chmod 644 {}

Lo anterior encontrará todos los archivos con extensión jpg y ejecutará chmod 644 .

Aquí hay una explicación útil y el uso de los corchetes:

  • {} : un marcador de posición que se cambiará con la ruta del resultado de la búsqueda (wp-content/uploads/01.jpg).
  • {.} : similar a {} , pero sin usar la extensión de archivo (wp-content/uploads/01).
  • {/} : un marcador de posición que será reemplazado por el nombre de base del resultado de la búsqueda (01.jpg).
  • {//} : directorio principal de la ruta descubierta (wp-content/uploads).
  • {/.} : solo el nombre de base, sin la extensión (01).

Esta fue una breve revisión del comando fd, que algunos usuarios pueden encontrar más fácil de usar y más rápido. Como se mencionó anteriormente en este artículo, fd no pretende reemplazar completamente a find, sino que proporciona un uso simple, una búsqueda más sencilla y un mejor rendimiento. Fd no ocupa mucho espacio y es una buena herramienta para tener en tu arsenal.