Los potentes comodines de bash en Linux

Los poderosos comodines de bash - 2.0

Sin estas pequeñas cosas geniales llamadas comodines de shell, trabajar en la línea de comandos de Linux es bastante doloroso. Así que asegúrate de poner los comodines en buen uso.

¿Qué son los comodines de concha? >

Comodines son una función de shell que hace que la línea de comandos sea mucho más poderosa que cualquier administrador de archivos GUI. Verá, si desea seleccionar un gran grupo de archivos en un administrador de archivos gráfico, normalmente debe seleccionarlos con el mouse. Esto puede parecer simple, pero en algunos casos puede resultar muy frustrante. Por ejemplo, suponga que tiene un directorio con una gran cantidad de todo tipo de archivos y subdirectorios, y decide mover todos los archivos HTML, que tienen la palabra "linux" en algún lugar en el medio de sus nombres, desde ese gran directorio a otro directorio. ¿Cuál es una forma sencilla de hacer esto? Si el directorio contiene una gran cantidad de archivos HTML con nombres diferentes, ¡su tarea es todo menos simple!

En la CLI de Linux, esa tarea es tan simple de realizar como mover solo un archivo HTML, y es muy fácil debido a la comodines de concha. Los comodines son caracteres especiales que le permiten seleccionar nombres de archivo que coincidan con ciertos patrones de caracteres. Esto le ayuda a seleccionar incluso un gran grupo de archivos escribiendo solo unos pocos caracteres y, en la mayoría de los casos, es más fácil que seleccionar los archivos con un mouse.

Aquí hay una lista de los comodines más utilizados en bash:

Comodín Cerillas
* cero o más caracteres
? exactamente un personaje
[a B C D e] exactamente un personaje listado
[ae] exactamente un personaje en el rango dado
[!a B C D e] cualquier personaje que no esté listado
[! ae] Cualquier personaje que no esté en el rango dado.
{debian, linux} exactamente una palabra completa en las opciones dadas

Puede usar comodines con cualquier comando que acepte nombres de archivos como argumentos.

 

Ejemplos de comodines >

Veamos algunos ejemplos. Probablemente el carácter * ya le resulte familiar, porque también se usa ampliamente en muchos otros lugares, no solo en Linux. Por ejemplo, lo siguiente elimina todos los archivos del directorio actual:
rm *

El siguiente comando mueve todos los archivos HTML, que tienen la palabra "linux" en sus nombres, desde el directorio de trabajo a un directorio llamado dir1:
mv *linux*.html dir1

Mira, ¡te dije que mover múltiples archivos puede ser tan simple como mover solo un archivo!

A continuación se muestran todos los archivos que comienzan con d y terminar con .txt:
less d*.txt

El siguiente comando elimina todos los archivos cuyos nombres comienzan con junk., seguido de exactamente tres caracteres:
rm junk.???

Con este comando usted lista todos los archivos o directorios cuyos nombres comienzan con hda, seguido de exactamente un número:
ls hda[0-9]

Esto lista todos los archivos o directorios que comienzan con hda, seguido de exactamente dos numerales:
ls hda[0-9][0-9]

A continuación se enumeran todos los archivos o directorios cuyo nombre comienza con hd or sd, seguido de cualquier carácter único entre a y c:
ls {hd,sd}[a-c]

Este comando copia todos los archivos, que comienzan con una letra mayúscula, al directorio dir2:
cp [A-Z]* dir2

Esto elimina todos los archivos que no terminan con ceh or g:
rm *[!cehg]

Podría seguir y seguir con estos ejemplos, pero entiendes la idea. Puede usar patrones simples o combinar diferentes comodines y construir patrones muy complejos, y como dije antes, puede usarlos con cualquier comando que acepte nombres de archivos como argumentos.