Exa, la alternativa perfecta al comando ls
Exa, es una herramienta, para la línea de comandos de GNU/Linux, que nos permite listar ficheros de forma más visual, colorida y atractiva que pretende ser la sustitución del veterano comando ls. Viene con funciones avanzadas, además, es incluso más fácil de usar que ls.
Sumario
- Que es «exa»
- Instalación
- Uso del comando «exa»
- Opciones y filtros
Que es «exa»
Cuando trabajamos en la linea de comandos, uno de los que más utilizamos es el comando «ls» para listar el contenido de un directorio.
En el artículo de hoy vamos a ver una utilidad, «exa», que realiza la misma función pero mejorada. Para facilitar su lectura, separa el tipo de información por colores y ofreciendo también información sobre los enlaces simbólicos, atributos extendidos y recursividad en directorios, que podemos visualizar en vista de árbol.
La utilidad «exa» está escrita en «Rust» y disponible para varias distribuciones de GNU/Linux como Debian, Ubuntu, Fedora, Rhel, CentOS, Alma Linux, openSUSE, Arch, Gentoo, Alpine Linux, que no es GNU, Android y está publicada bajo licencia del MIT. También esta disponible para MacOS.
Instalación
Si estas utilizando una versión moderna de tu GNU/Linux preferido, posiblemente ya lo tienes disponible en los repositorios oficiales.
Para instalar «Exa» ejecuta los siguientes comandos.
# Debian, Ubuntu y derivados sudo apt install exa # Fedora, Rhel, CentOS, Alma Linux y derivados sudo dnf install exa # Arch Linux, Manjaro y derivados sudo pacman -S exa # Open Suse y derivados sudo zypper install exa # Gentoo y derivados sudo emerge sys-apps/exa # Alpine Linux sudo apk add exa #Android/Termux sudo pkg install exa
Si no usas una versión rolling o repositorios aun inestables, es más que posible que no aparezca en tus repositorios oficiales. Pero no es un problema, lo instalamos manualmente. Como hemos mencionado, esta escrita en «Rust», por tanto primero tendrás que instalar este excelente lenguaje de programación. Lo hacemos ejecutando
sudo curl https://sh.rustup.rs -sSf | sh
Cuando te pregunte, pulsa el número 1 y la tecla enter.
Descargamos la última versión disponible.
wget https://github.com/ogham/exa/releases/download/v0.10.1/exa-linux-x86_64-v0.10.1.zip
Ahora, descomprimimos y movemos el binario al directorio correspondiente.
unzip exa-linux-x86_64-v0.10.1.zip sudo mv bin/exa /usr/local/bin/exa
En mi caso con Debian, actualizo la lista de paquetes e instalo la herramienta desde los repositorios
sudo apt update sudo apt install exa
Y comprobamos la versión instalada con
exa -v
Al instalar desde los repositorios oficiales de Debian nos instala la versión v0.9.0.
Uso del comando «exa»
Una vez termine la instalación, ya puedes ejecutar el siguiente comando. Vemos la salida de «ls» y luego la de «exa» para apreciar las diferencias
ls
exa
Como apreciamos en la captura, nos muestra la salida coloreada de forma predeterminada, facilitando la identificación de ficheros y directorios y de distintos tipos de ficheros entre si.
También diferencia por colores los permisos de los ficheros y directorios y el usuario propietario de los mismos. Otra característica interesante es que nos muestra la fecha de la última modificación en el formato dd/MM/AAAA.
Si en el directorio en el que encuentras tienes un repositorio GIT, también te mostrará información sobre su estado.
También permite obtener información de un fichero o directorio específico con la siguiente sintaxis.
exa -l fichero
Por ejemplo
exa -l /etc
Otra funcionalidad muy útil es la opción de mostrar los ficheros en forma de árbol, como conseguimos con el comando «tree», pero solo con la opción de «exa» sin necesidad de ninguna tubería.
exa --tree
Opciones y filtros
El comando «exa» viene con muchas opciones y filtros aplicables. Los vemos
Opciones de pantalla
- -1, –oneline : muestra una entrada por línea
- -G, –grid : muestra las entradas como una cuadrícula (predeterminado)
- -l, –long : muestra detalles y atributos extendidos
- -R, –recurse : muestra con recursividad los directorios
- -T, –tree : muestra con recursividad los directorios como un árbol
- -x, –across : ordena la cuadrícula a lo ancho, en lugar de hacia abajo
- -F, –classify : indicador de tipo de visualización por nombre de archivo
- –colo[u]r : usar colores de terminal
- –colo[u]r-scale : resalta claramente los niveles de tamaño de fichero
- –icons : mostrar iconos
- –no-icons : no muestra iconos (siempre anula –icons)
Opciones de filtrado
- -a, –all : muestra ficheros ocultos.
- -d, –list-dirs : lista de directorios como ficheros regulares
- -L, –level=(profundidad) : limita la profundidad de la recursividad
- -r, –reverse : invertir el orden de clasificación
- -s, –sort=(campo) : por qué campo ordenar
- –group-directories-first : enumera los directorios antes que otros ficheros
- -D, –only-dirs : lista solo directorios
- –git-ignore : ignora los ficheros mencionados en .gitignore
- -I, –ignore-glob=(globs) : patrones globales (separados por tubería) de ficheros para ignorar
Con la opción –all, dos veces, nos muestra los directorios especiales «.» y «..».
Opciones de vista larga
Estas opciones están disponibles cuando se ejecuta con –long (-l)
- -b, –binary : lista de tamaños de ficheros con prefijos binarios
- -B, –bytes : muestra el tamaño de los ficheros en bytes, sin prefijos
- -g, –group : enumera el grupo de cada fichero
- -h, –header : agrega una fila de encabezado a cada columna
- -H, –links : enumera el número de enlaces duros de cada fichero
- -i, –inode : enumera el número de inodo de cada fichero
- -m, –modified : usa el campo de marca de tiempo modificado
- -S, –blocks : enumera el número de bloques del sistema de ficheros de cada fichero
- -t, –time=(campo) : qué campo de marca de tiempo usar
- -u, –accessed : use el campo de marca de tiempo accedido
- -U, –created : usa el campo de marca de tiempo creado
- -@, –extended : enumera los atributos y tamaños extendidos de cada fichero
- –changed : usa el campo de marca de tiempo modificado
- –git : enumera el estado de Git de cada fichero, si se rastrea o se ignora
- –time-style : cómo formatear marcas de tiempo
- –no-permissions : suprimir el campo de permisos
- –octal-permissions : enumera los permisos de cada fichero en formato octal
- –no-filesize : suprimir el campo de tamaño de fichero
- –no-user : suprimir el campo de usuario
- –no-time : suprime el campo de tiempo
Vemos la ejecución con varias opciones y filtros a la vez.
exa -bghHliS
En este caso nos da los datos añadiendo una cabecera «opción -h», con el tipo de datos ofrecido en cada columna, que aún nos facilita más su lectura. El resto de opciones lo puedes ver en la lista anterior.
Puedes consultar la ayuda en linea del comando con
exa --help
Si necesitas más información o usas un sistema operativo diferente, en su GitHub oficial, o en su página oficial la encontrarás.
¿Tienes algún comentario que hacer sobre este artículo?, al pie del post tienes un formulario para hacerlo.
Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.
Y para suscribirte y recibir las novedades publicadas, tienes un enlace en pie de la página o desde aquí mismo.