Cómo usar el comando fd en Linux

En Linux, fd es una alternativa más fácil al comando de búsqueda. Tiene una sintaxis simplificada, utiliza valores predeterminados sensibles y tiene un comportamiento de sentido común incorporado. Vamos a ponerlo a prueba.

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

El fd el comando no está destinado a reemplazar el comando de búsqueda tradicional, que tiene estado en Linux, bueno, 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 el Página del repositorio de GitHub.

fd tiene una salida coloreada, similar a la de algunos modos ls. Es recursivo, pero no busca directorios ocultos por defecto. Sabe acerca de 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 un modo sensible a mayúsculas y minúsculas. Por supuesto, puede anular los valores predeterminados, pero, en muchos casos, funcionan a su favor.

Instalación de 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, marque la instrucciones de instalación en la página del centro de Git.

Escriba lo siguiente:

sudo apt-get install fd-find

sudo apt-get install fd-find en una ventana de terminal.

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

alias fd=fdfind

alias fd = fdfind en una ventana de terminal.

Para que el alias sea persistente y permanecer disponible después de reiniciar, colóquelo en su archivo “.bashrc” o “.bash_aliases”.

Para instalar fd en Fedora, escriba este comando:

sudo dfn install fd-find

sudo dnf instala fd-find en una ventana de terminal.

En Manjaro, escriba lo siguiente:

sudo pacman -Syu fd

sudo pacman -Syu fd en una ventana de terminal.

fd versus fdfind

Para evitar confusiones, hemos dejado el comando con su nombre predeterminado, fdfind, en nuestra PC de prueba de 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 --version

fdfind --version en una ventana de terminal.

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.

  Cómo usar la bandeja de código duro para cambiar los iconos de la bandeja del sistema en Linux

Búsquedas simples con fd

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

Escriba lo siguiente:

fdfind

fdfind en una ventana de terminal.

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

Salida de fdfind en una ventana de terminal.

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 es sensible a mayúsculas y minúsculas.

Por ejemplo, puede escribir lo siguiente:

fdfind -e png

fdfind -e png en una ventana de terminal.

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

salida de fdfind -e png en una ventana de terminal.

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

fdfind index.page

fdfind index.page en una ventana de terminal.

El archivo se encuentra y se encuentra en un subdirectorio. No tuvimos que decirle a fd que buscara de forma recursiva.

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:

fdfind passwd /etc

fdfind passwd / etc en una ventana de terminal.

Aquí, buscamos todos los archivos de código fuente C que contienen «coord» en el nombre del archivo:

fdfind -e c coord

fdfind -ec coord en una ventana de terminal.

Se encontraron dos archivos coincidentes.

fd y Git

Git es extremadamente popular sistema de control de versiones de código fuente. Si usa Git en su computadora, probablemente use archivos “.gitignore” para decirle a Git de qué archivos debería preocuparse y cuáles puede ignorar. De forma predeterminada, fd respeta la configuración de sus archivos «.gitignore».

  Cómo instalar el tema Mcata GTK en Linux

En este directorio, tenemos un repositorio Git y un archivo «.gitignore». Escribimos lo siguiente:

ls -adl .git*

ls -adl .git * en una ventana de terminal.

Pidamos a fd que enumere los archivos que contienen «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:

fdfind coord
fdfind coord -I

fdfind coord en una ventana de terminal.

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

Los programas de control de versiones del código fuente suelen ignorar los archivos de objeto. 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 le indica a Git que ignore los archivos objeto y, por defecto, 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 archivo y distinción entre mayúsculas y minúsculas

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

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

Lo siguiente busca un directorio llamado imágenes:

fdfind -td images

fdfind -td imágenes en una ventana de terminal.

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 los archivos que contienen «geo» en sus nombres de archivo, y luego aquellos que contienen «Geo» en sus nombres de archivo:

fdfind -tf geo
fdfind -tf Geo

fdfind -tf geo en una ventana de terminal.

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

  3 formas de proteger un servidor SSH en Linux

Nuestro segundo comando contenía un carácter en mayúsculas, lo que hacía que fd funcionara de manera sensible a mayúsculas y minúsculas. Esto significa que solo «Geo» es una coincidencia válida.

Ejecución de comandos

El comando fd le permite lanzar 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 usando el siguiente comando, que busca archivos con extensión ZIP:

fdfinf -e zip

fdfinf -e zip en una ventana de terminal.

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 al utilidad descomprimir para descomprimir nuestro archivo ZIP (el «{}» es un marcador de posición que representa el archivo encontrado):

fdfind -e zip -x unzip {}

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 unzip {} -d {//}

fdfind-e zip -x descomprimir {} -d {//} en una ventana de terminal.

A continuación, se ubica el archivo ZIP y se descomprime en su directorio principal.

Salida de fdfind-e zip -x unzip {} -d {//} en una ventana de terminal.

¿Tu búsqueda preferida?

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 funciones más avanzadas, siempre puede volver a buscar a ese veterano experimentado.