Cómo usar el comando fd en Linux

Publicado: 2022-01-29
Una ventana de terminal en una PC con Linux con un escritorio estilo Ubuntu.
Fatmawati Achmad Zaenuri/Shutterstock

En Linux, fd es una alternativa más sencilla al comando de find . Tiene una sintaxis simplificada, utiliza valores predeterminados sensibles y tiene un comportamiento de sentido común integrado. Veámoslo a través de sus pasos.

fd versus find: ¿Cuál es la diferencia?

El comando fd no pretende reemplazar el comando tradicional de find , que ha estado en Linux, bueno, desde siempre. En cambio, fd intenta satisfacer la mayoría de los usos comunes de find de una manera más sencilla y, a menudo, es ocho o nueve veces más rápido que find . Puede ver algunos de sus puntos de referencia en la página del repositorio de GitHub del proyecto.

10 comandos básicos de Linux para principiantes
RELACIONADO 10 comandos básicos de Linux para principiantes

fd tiene una salida coloreada, similar a la de algunos modos ls . Es recursivo, pero no busca directorios ocultos por defecto. Conoce Git y también ignorará automáticamente cualquier patrón en su archivo ".gitignore".

fd no distingue entre mayúsculas y minúsculas de forma predeterminada. Sin embargo, si su patrón de búsqueda contiene una letra mayúscula, fd opera en modo sensible a mayúsculas y minúsculas. Por supuesto, puede anular los valores predeterminados, pero, en muchos casos, funcionan a su favor.

RELACIONADO: Cómo usar todos los comandos de búsqueda de Linux

Instalando fd

Desde Ubuntu 19.04 (Disco Dingo), puede instalar fd directamente llamando al paquete mantenido oficialmente con apt-get . Si está ejecutando una versión anterior de Ubuntu, consulte las instrucciones de instalación en la página del centro de Git.

Escribe lo siguiente:

 sudo apt-get install fd-find 

Anuncio publicitario

En Ubuntu, el comando es fdfind para evitar un conflicto de nombres con otra utilidad existente. Si quieres que sea fd , puedes configurar un alias:

 alias fd=fdfind 

Para hacer que el alias sea persistente para que permanezca disponible después de reiniciar, colóquelo en su archivo ".bashrc" o ".bash_aliases".

RELACIONADO: Cómo crear alias y funciones de shell en Linux

Para instalar fd en Fedora, escriba este comando:

 sudo dfn instalar fd-buscar 

En Manjaro, escriba lo siguiente:

 sudo pacman-syu fd 

fd contra fdencontrar

Para evitar confusiones, hemos dejado el comando con su nombre predeterminado, fdfind , en nuestra PC de prueba con Ubuntu. fd y fdfind son exactamente el mismo comando, como verá en el siguiente ejemplo (si le pide a fdfind que muestre su versión, se llama a sí mismo "fd"):

 fdfind --versión 

Llamaremos al comando "fed", pero en los ejemplos, usaremos Ubuntu "fdfind". En otras distribuciones de Linux, puede escribir "fd" en lugar de "fdfind" para ahorrar algunas pulsaciones de teclas.

Búsquedas simples con fd

Si usa fd sin opciones de línea de comandos, se comporta un poco como ls , excepto que enumera los archivos en subdirectorios de manera predeterminada.

Escribe lo siguiente:

 encontrar 

La salida aparece en diferentes colores para diferentes tipos de archivos y directorios.

Anuncio publicitario

Para ver archivos de un tipo específico, use la opción -e (extensión). Tenga en cuenta que no tiene que preceder la extensión con un punto (.), ni se distingue entre mayúsculas y minúsculas.

Por ejemplo, podría escribir lo siguiente:

 fdencontrar -e png 

Ahora, los únicos archivos enumerados son archivos de imagen PNG.

Para buscar un solo archivo, escriba su nombre en la línea de comando, así:

 fdfind índice.página 

El archivo se encuentra y pasa a estar en un subdirectorio. No tuvimos que decirle a fd que buscara recursivamente.

Para que la búsqueda comience en un directorio en particular, incluya una ruta de archivo en la línea de comando. El siguiente comando iniciará una búsqueda en el directorio "/etc" y buscará archivos que incluyan "passwd" en el nombre del archivo:

 fdencontrar contraseña /etc 

Aquí, estamos buscando todos los archivos de código fuente C que contienen "coord" en el nombre del archivo:

 fdfind -ec coord 

Se encontraron dos archivos coincidentes.

fd y git

Git es un sistema de control de versiones de código fuente extremadamente popular. Si usa Git en su computadora, probablemente use archivos ".gitignore" para decirle a Git qué archivos debe ocuparse y cuáles puede ignorar. De forma predeterminada, fd respeta la configuración de sus archivos ".gitignore".

Anuncio publicitario

En este directorio, tenemos un repositorio Git y un archivo “.gitignore”. Tecleamos lo siguiente:

 ls -adl .git* 

Pidamos a fd que enumere cualquier archivo que contenga "coord" en el nombre del archivo. Luego repetiremos la búsqueda y usaremos la opción -I (no ignorar). Esto le dice a fd que ignore la configuración en el archivo ".gitignore" e informe cada archivo coincidente.

Para hacer todo esto, escribimos lo siguiente:

 fdencontrar coord
 fdencontrar coord -I 

Los dos archivos adicionales en el segundo conjunto de resultados son archivos de objetos. Estos se crean cuando se compila un programa de archivo. Luego, el enlazador los utiliza para crear la versión ejecutable final del programa.

Los programas de control de versiones del código fuente normalmente ignoran los archivos de objetos. Se regeneran cada vez que compila su programa, por lo que no tiene que almacenar copias de ellos. Hay una entrada en el archivo ".gitignore" que indica a Git que ignore los archivos de objetos y, de forma predeterminada, fd también los ignora.

La opción -I (no ignorar) obliga a fd a devolver todo lo que encuentra, en lugar de guiarse por el archivo ".gitginore".

Tipos de archivos y sensibilidad a mayúsculas y minúsculas

Puede pedirle a fd que busque directorios, archivos (incluidos los ejecutables y vacíos) y enlaces simbólicos. Puede hacerlo utilizando la opción -t (tipo), seguida de una de las letras a continuación:

  • f : Archivo.
  • d : Directorio.
  • l : Enlace simbólico.
  • x : Archivo ejecutable.
  • e : Archivo vacío.

Lo siguiente busca un directorio llamado imágenes:

 Imágenes de fdfind-td 

Anuncio publicitario

Se encuentra una coincidencia, un subdirectorio más bajo que el actual.

Veamos cómo funciona la distinción entre mayúsculas y minúsculas con los patrones de búsqueda. Escribimos lo siguiente para buscar primero archivos que contengan "geo" en sus nombres de archivo y luego aquellos que contengan "Geo" en sus nombres de archivo:

 fdfind-tf geo
 fdfind -tf Geo 

En el primer comando, usamos un patrón de búsqueda en minúsculas, lo que provocó que fd operara sin distinguir entre mayúsculas y minúsculas. Esto significa que tanto "Geo" como "geo" son coincidencias válidas.

Nuestro segundo comando contenía un carácter en mayúscula, lo que hizo que fd operara con distinción entre mayúsculas y minúsculas. Esto significa que solo "Geo" es una coincidencia válida.

Ejecución de comandos

El comando fd le permite iniciar otro comando y ejecutarlo en cada uno de los archivos encontrados.

Digamos que sabemos que hay un archivo Zip en algún lugar de nuestro árbol de directorios de código fuente. Podemos buscarlo mediante el siguiente comando, que busca archivos con extensión ZIP:

 fdfinf-e zip 

Anuncio publicitario

Con la opción -x (exec), puede pasar cada archivo encontrado a otro comando para que lo procese. Por ejemplo, podemos escribir lo siguiente para llamar a la utilidad de descompresión para descomprimir nuestro archivo ZIP (el "{}" es un marcador de posición que representa el archivo encontrado):

 fdfind -e zip -x descomprimir {}

Esto descomprimirá el archivo en el directorio de trabajo actual. Si queremos que se descomprima en el directorio que contiene el archivo ZIP, podemos usar uno de los siguientes marcadores de posición:

  • {} : la ruta completa del archivo y el nombre del archivo encontrado.
  • {/} : el nombre de archivo del archivo encontrado.
  • {//} : el directorio que contiene el archivo encontrado.
  • {/.} : el nombre de archivo del archivo encontrado, sin la extensión.

Para que nuestro archivo ZIP se encuentre y se descomprima en el directorio que lo contiene, podemos usar la opción unzip -d (directorio) y pasar el marcador de posición del directorio principal ( {//} ):

 fdfind -e zip -x descomprimir {} -d {//} 

Luego se ubica el archivo ZIP y se descomprime en su directorio principal.

¿Tu búsqueda favorita?

Debido a que cubre los usos más comunes con tanta simplicidad, fd puede convertirse fácilmente en su comando "buscar". Siempre que necesite sus características más avanzadas, siempre puede volver a ese veterano experimentado, find .

RELACIONADO: Las mejores computadoras portátiles Linux para desarrolladores y entusiastas