¿Estás buscando una manera de organizar tus archivos y realizar algunas operaciones sobre ellos? Hay muchas instancias en programación donde necesitas ordenar algunos datos, como una lista de archivos. Ordenar archivos con los comandos sort
y ls
de Bash te ayudará a mantener las cosas organizadas.
En este tutorial, aprenderás los fundamentos de ordenar archivos y contenidos de archivos.
¡Empecemos a ordenar!
Prerrequisitos
Este tutorial utiliza Ubuntu 20.04, pero cualquier distribución de Linux funcionará.
Ordenar Archivos Alfabéticamente en Bash
Hay muchas formas de ordenar archivos en Linux, pero vamos a centrarnos en la más común, ordenar archivos alfabéticamente.
Abre tu terminal y ejecuta el comando ls -l
a continuación para obtener una lista de archivos en un directorio en orden ascendente. La bandera -l
le indica al comando ls
que imprima la salida devuelta en un formato de lista larga.

Por defecto, el comando
ls
lista los archivos en orden ascendente. Para invertir el orden de clasificación, pasa la bandera-r
al comandols -l
, así:ls -lr
. Pasar la bandera-r
al comandols -l
se aplica a otros ejemplos en este tutorial.
Usando Bash Sort para Ordenar Archivos por Tamaño
En lugar de ordenar archivos alfabéticamente, es posible que desees ordenar los archivos por tamaño. Ordenar los archivos por tamaño es útil cuando se prioriza ver los archivos más pequeños o más grandes en una lista.
Para ordenar los archivos por tamaño, pasa la bandera -S
al comando ls
para indicar que ordene la lista de archivos por tamaño.
Ejecuta el siguiente comando para listar archivos (ls
) ordenados por tamaño en un formato de lista larga (-lS
).
A continuación, puedes ver que el comando ordenó los archivos por tamaño en orden descendente (de mayor a menor tamaño).
Para invertir el orden de clasificación (de menor a mayor), agrega la bandera
-r
, así:ls -lSr

Ordenar archivos por tiempo de modificación mediante la ordenación de Bash
Avanzando desde la ordenación de archivos por tamaño, es posible que te encuentres con un caso de uso en el que necesitas ordenar archivos por el momento en que fueron modificados. Por ejemplo, olvidaste el nombre del archivo que creaste y solo recuerdas la hora en que modificaste el archivo.
Ejecuta el siguiente comando donde el parámetro -t
indica al comando ls
que ordene los archivos por tiempo de modificación.

Ordenar archivos por extensión de archivo
Cuando estás buscando un archivo de un tipo específico, ordenar archivos por extensión de archivo es la solución ideal.
Ejecuta el siguiente comando para listar archivos (ls
) en el directorio de trabajo y ordénalos según sus extensiones (-lx
).
Observa que el comando ordenó los archivos con la misma extensión en orden ascendente según sus nombres.

Ordenar Contenidos en un Archivo de Texto
Para ahora, has aprendido varios métodos para ordenar los archivos en un directorio. Cambiando tu enfoque desde el comando ls
, intenta ejecutar el comando sort
. El comando sort
ordena el contenido de los archivos dependiendo de la bandera que añadirás. Pero primero, necesitas un archivo con contenido que modificarás.
Ejecuta el siguiente comando para crear un archivo de texto llamado ~/data/frutas.txt que contenga nombres de frutas. La bandera -e
habilita la interpretación de la barra invertida para escribir cada palabra en una nueva línea (\n
).
Ahora ejecuta el siguiente comando para sort
ear cada palabra en frutas.txt
.
A continuación, puedes ver que el contenido del archivo está ordenado en orden ascendente.

Sin ninguna bandera, el comando
sort
ordena el contenido del archivo en orden ascendente por defecto. Para revertir el orden de clasificación, añade la bandera-r
al comando sort, así:sort -r frutas.txt
. Ordenar en orden inverso añadiendo la bandera-r
se aplica a otros ejemplos en este tutorial.
Ordenar una Lista de Números en un Archivo de Texto
El comando para ordenar números es similar a ordenar textos en un archivo, pero añadirás la bandera -n
en su lugar. Creemos primero un archivo para demostrar cómo ordenar numéricamente el contenido de un archivo.
Ejecuta el siguiente comando para crear un archivo llamado ~/data/puntuaciones.txt que contenga números aleatorios, cada uno en una nueva línea.
Ahora ejecuta el siguiente comando para sort
ear los números (-n
) en el archivo ~/data/puntuaciones.txt.
A continuación puedes ver los números enumerados en líneas que van desde el número más pequeño al más grande.

Ordenar una lista de números de versión en un archivo de texto
Tal vez tengas una lista de números de versión en un archivo de texto que deseas ordenar. Si es así, agregar la opción --version-sort
hará el truco.
Para demostrar cómo funciona la opción --version-sort
, primero crea un archivo de texto.
Ejecuta el siguiente comando para crear un archivo de texto llamado ~/data/versions.txt con números de versión aleatorios listados, cada uno en una nueva línea (\n
).
Ahora ejecuta el siguiente comando para ordenar
los números de versión (--version-sort
) en el archivo versions.txt. La opción --field-separator
le indica al comando sort
que los números en cada versión están separados por un punto (.
). Puedes cambiar el separador de campo por cualquier carácter que separe los números en las versiones listadas en tu archivo de texto.

Bash Sort para encontrar y ordenar archivos por extensión de archivo
Has estado ejecutando comandos individuales (ya sea ls
o sort
) en los ejemplos anteriores. Pero en programación, a menudo necesitarás usar dos o más comandos juntos. ¿Cómo? Mediante tuberías de un comando a otro.
Ejecuta el siguiente comando para encontrar
todos los archivos markdown (-iname "*.md"
) en el directorio de trabajo (.
), y ordénalos en orden alfabético descendente (sort -r
). Intenta encontrar y ordenar otros archivos cambiando "*.md"
a otra extensión de archivo.

Si prefieres guardar la salida ordenada en un archivo de texto en lugar de la salida estándar en la consola, añade la opción
--output
, así:find . -iname "*.md" | sort -r --output=sorted.txt
. La opción--output
indica al comandosort
que cree un archivo de salida para la lista ordenada de archivos.
Conclusión
El objetivo de este artículo fue enseñarte sobre diferentes formas de ordenar usando comandos Bash en una máquina Linux. Ahora has aprendido a ordenar la lista de archivos y ordenar el contenido de archivos. Además, también deberías saber cómo concatenar diferentes comandos para una clasificación de archivos más compleja.
Con este conocimiento recién adquirido como punto de partida, ¿por qué no crear scripts para automatizar listas de archivos y clasificación de contenido de archivos?