Uso de Wildcards en Bash para Gestión de Archivos en Unix
Clase 8 de 26 • Curso de Introducción a la Terminal y Línea de Comandos
Resumen
Dominar los wildcards o comodines en la terminal Bash te permite realizar tareas complejas con mucha mayor eficacia. Estos caracteres especiales facilitan seleccionar varios archivos al mismo tiempo, simplificando operaciones repetitivas y potenciando tu productividad en sistemas Unix.
¿Qué son los wildcards y cómo funcionan?
Un wildcard o comodín es un carácter especial utilizado para representar patrones y seleccionar grupos de archivos en la terminal. Algunos comandos como ls
, copy
, cat
, move
, grep
, entre otros, los aceptan, pero no todos los comandos del sistema.
Los principales wildcards vistos aquí son:
- Asterisco ( * ): Representa cualquier secuencia de caracteres, incluida ninguna.
- Signo de interrogación (?): Representa exactamente un único carácter.
- Agrupación por caracteres ([ ]): Hace coincidencia con caracteres específicos.
- Agrupación por patrones ({ }): Permite listas de patrones o palabras específicas.
¿Cómo utilizar wildcards para filtrar archivos?
¿Cómo listar archivos por extensión?
Si necesitas mostrar archivos de la misma extensión, utiliza ls
junto con el comodín asterisco. Por ejemplo, para listar todos los archivos .txt
:
ls *.txt
Este comando devolverá todos los archivos cuyo nombre finaliza con .txt
.
¿Cómo listar archivos que inician con un patrón definido?
Si buscas listar archivos que comienzan con un patrón específico, como 'file'
, escribe:
ls file*
Esto mostrará archivos como file1
, fileA
, fileB
, entre otros.
¿Cómo filtrar archivos con nombres específicos?
Si deseas listar archivos con nombres similares pero de una cantidad exacta de caracteres, utiliza el símbolo de interrogación. Por ejemplo, para ver archivos .txt
que tengan solo un carácter final tras 'file'
, usa:
ls file?.txt
Archivos como file1.txt
o fileA.txt
aparecerán, pero no otros como filelargo.txt
.
¿Cómo agrupar archivos por caracteres o patrones específicos?
¿Cómo seleccionar archivos según caracteres específicos?
Con los corchetes puedes filtrar archivos que terminen en caracteres específicos:
ls *[AB]
Esto listará únicamente los archivos terminados en las letras A
o B
mayúsculas.
¿Cómo seleccionar archivos con una palabra o extensión específica?
Utilizando llaves puedes filtrar archivos por múltiples palabras o extensiones:
ls *.{md,log}
Lo anterior muestra archivos terminados en .md
y .log
, como data.log
o fileb.md
.
Consejos útiles y precauciones
Aunque poderosos, estos comandos requieren precaución, especialmente cuando se combinan con operaciones como move
, copy
, o remove
:
- Siempre verifica la ubicación actual antes de ejecutar comandos masivos como:
rm *.txt
Este comando eliminará todos los archivos terminados en .txt
del directorio actual, algo útil pero peligroso si no se maneja con atención.
- Los wildcards pueden variar ligeramente dependiendo de la shell utilizada. Por ejemplo, en
zsh
, la interpretación de algunos comodines podría cambiar respecto abash
.
¡Recuerda practicar en ambientes seguros y explora otras combinaciones para dominar la eficiencia que los wildcards pueden brindarte!