Comodines (también denominados metacaracteres) son símbolos o caracteres especiales que representan a otros caracteres. Puede usarlos con cualquier comando, como el comando ls o el comando rm. para enumerar o eliminar archivos que coincidan con un criterio dado, de manera receptiva.
Lea también:10 ejemplos prácticos útiles sobre el encadenamiento de operadores en Linux
El shell interpreta estos comodines y los resultados se devuelven al comando que ejecuta. Hay tres comodines principales en Linux:
- Un asterisco
(*)
– coincide con una o más apariciones de cualquier carácter, incluido ningún carácter. - Signo de interrogación
(?)
– representa o coincide con una única aparición de cualquier carácter. - Caracteres entre paréntesis
([ ])
– coincide con cualquier ocurrencia del carácter encerrado entre corchetes. Es posible utilizar diferentes tipos de caracteres (caracteres alfanuméricos):números, letras, otros caracteres especiales, etc.
Debe elegir cuidadosamente qué comodín usar para que coincida con los nombres de archivo correctos:también es posible combinarlos todos en una sola operación, como se explica en los ejemplos a continuación.
Cómo hacer coincidir nombres de archivos usando comodines en Linux
A los efectos de este artículo, utilizaremos los siguientes archivos para demostrar cada ejemplo.
createbackup.sh list.sh lspace.sh speaker.sh listopen.sh lost.sh rename-files.sh topprocs.sh
l
(que es el prefijo) y terminando con una o más apariciones de cualquier carácter.
$ ls -l l*
*
para copiar todos los nombres de archivo con el prefijo users-0
y terminando con una o más apariciones de cualquier carácter.
$ mkdir -p users-info $ ls users-0* $ mv -v users-0* users-info/ # Option -v flag enables verbose output
l
seguido de cualquier carácter individual y terminando con st.sh
(que es el sufijo).
$ ls l?st.sh
l
seguido de cualquiera de los caracteres entre corchetes pero terminando con st.sh
.
$ ls l[abdcio]st.sh
Cómo combinar comodines para hacer coincidir los nombres de archivo en Linux
Puede combinar comodines para crear un criterio de coincidencia de nombre de archivo complejo como se describe en los siguientes ejemplos.
st
pero terminando con una o más ocurrencias de cualquier carácter.
$ ls $ ls ??st*
[clst]
y terminando con una o más apariciones de cualquier carácter.
$ ls $ ls [clst]*
[clst]
seguido de uno de estos [io]
y luego cualquier carácter individual, seguido de una t
y, por último, se enumerarán una o más ocurrencias de cualquier carácter.
$ ls $ ls [clst][io]?t*
tar
y que terminen con una o más apariciones de cualquier carácter serán eliminados.
$ ls $ rm *tar* $ ls
Cómo hacer coincidir los caracteres establecidos en Linux
$ ls users-111.list users-1AA.list users-22A.list users-2aB.txt users-2ba.txt users-111.txt users-1AA.txt users-22A.txt users-2AB.txt users-2bA.txt users-11A.txt users-1AB.list users-2aA.txt users-2ba.list users-12A.txt users-1AB.txt users-2AB.list users-2bA.list
Este comando coincidirá con todos los archivos cuyo nombre comience con users-i
, seguido de un número, una letra minúscula o un número, luego un número y termina con una o más apariciones de cualquier carácter.
$ ls users-[0-9][a-z0-9][0-9]*
El siguiente comando coincide con los nombres de archivo que comienzan con users-i
, seguido de un número, una letra mayúscula o minúscula o un número, luego un número y termina con una o más apariciones de cualquier carácter.
$ ls users-[0-9][a-zA-Z0-9][0-9]*
El siguiente comando coincidirá con todos los nombres de archivo que comiencen con users-i
, seguido de un número, una letra mayúscula o minúscula o un número, luego una letra mayúscula o minúscula y termina con una o más apariciones de cualquier carácter.
$ ls users-[0-9][a-zA-Z0-9][a-zA-Z]*
Cómo negar un conjunto de caracteres en Linux
!
símbolo. El siguiente comando enumera todos los nombres de archivo que comienzan con users-i
, seguido de un número, cualquier carácter de nombre de archivo válido excepto un número, luego una letra mayúscula o minúscula y termina con una o más apariciones de cualquier carácter.
$ ls users-[0-9][!0-9][a-zA-Z]*
¡Eso es todo por ahora! Si probó los ejemplos anteriores, ahora debería tener una buena comprensión de cómo funcionan los comodines para hacer coincidir los nombres de archivo en Linux.
También le puede interesar leer los siguientes artículos que muestran ejemplos del uso de comodines en Linux:
- Cómo extraer archivos Tar a un directorio específico o diferente en Linux
- 3 formas de eliminar todos los archivos de un directorio excepto uno o algunos archivos con extensiones
- Diez consejos útiles para escribir secuencias de comandos Bash efectivas en Linux
- Cómo usar Awk y expresiones regulares para filtrar texto o cadenas en archivos
Si tiene algo que compartir o alguna pregunta que hacer, utilice el formulario de comentarios a continuación.