Búsqueda de sitios web

Diez ejemplos prácticos que utilizan comodines para hacer coincidir nombres de archivos en Linux


Los comodines (también conocidos como metacaracteres) son símbolos o caracteres especiales que representan 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 determinado, de manera receptiva.

Lea también: 10 ejemplos prácticos útiles sobre encadenamiento de operadores en Linux

Estos comodines son interpretados por el shell 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 corchetes ([ ]): coincide con cualquier aparición de carácter 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 utilizar para hacer coincidir los nombres de archivos correctos: también es posible combinarlos todos en una sola operación, como se explica en los ejemplos siguientes.

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

1. Este comando busca todos los archivos con nombres que comienzan con l (que es el prefijo) y terminan con una o más apariciones de cualquier carácter.

ls -l l*	

2. Este ejemplo muestra otro uso de * para copiar todos los nombres de archivos con el prefijo users-0 y que terminan 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

3. El siguiente comando busca todos los archivos con nombres que comiencen con l seguido de cualquier carácter y que terminen con st.sh (que es el sufijo ).

ls l?st.sh	

4. El siguiente comando busca todos los archivos con nombres que comiencen con l seguido de cualquiera de los caracteres entre corchetes pero que terminen con st.sh. .

ls l[abdcio]st.sh 

Cómo combinar comodines para hacer coincidir nombres de archivos en Linux

Puede combinar comodines para crear criterios complejos de coincidencia de nombres de archivos, como se describe en los siguientes ejemplos.

5. Este comando buscará coincidencias con todos los nombres de archivos que tengan el prefijo de dos caracteres cualesquiera seguidos de st pero que terminen con una o más apariciones de cualquier carácter.

ls
ls ??st*

6. Este ejemplo busca nombres de archivos que comiencen con cualquiera de estos caracteres [clst] y terminen con una o más apariciones de cualquier carácter.

ls
ls [clst]*

7. En este ejemplo, solo los nombres de archivos que comienzan con cualquiera de estos caracteres [clst] seguidos de uno de estos [io] y luego cualquier carácter, seguido de una t y, por último, se enumerarán una o más apariciones de cualquier carácter.

ls
ls [clst][io]?t*

8. Aquí, se eliminarán los nombres de archivos que tengan como prefijo una o más apariciones de cualquier carácter, seguidos de las letras tar y que terminen con una o más apariciones de cualquier carácter.

ls
rm *tar*
ls

Cómo hacer coincidir los caracteres establecidos en Linux

9. Ahora veamos cómo especificar un conjunto de caracteres. Considere los nombres de archivos a continuación que contienen información de los usuarios del sistema.

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 buscará coincidencias 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 termine con una o más apariciones de cualquier carácter.

ls users-[0-9][a-z0-9][0-9]*

El siguiente comando busca nombres de archivos que comienzan con users-i, seguido de un número, una letra o número minúscula o mayúscula, 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]*

Este comando que sigue coincidirá con todos los nombres de archivos que comiencen con users-i, seguido de un número, una letra o número minúscula o mayúscula, luego una letra minúscula o mayúscula y termina con una o más apariciones de cualquier personaje.

ls users-[0-9][a-zA-Z0-9][a-zA-Z]*

Cómo negar un conjunto de caracteres en Linux

10. También puedes negar un conjunto de caracteres usando el símbolo !. El siguiente comando enumera todos los nombres de archivos que comienzan con users-i, seguido de un número, cualquier carácter de nombre de archivo válido aparte de un número, luego una letra minúscula o mayúscula y termina con una o más apariciones de cualquier personaje.

ls users-[0-9][!0-9][a-zA-Z]*

¡Eso es todo por ahora! Si ha probado los ejemplos anteriores, ahora debería comprender bien cómo funcionan los comodines para hacer coincidir nombres de archivos en Linux.

Quizás también te interese leer los siguientes artículos que muestran ejemplos del uso de comodines en Linux:

  1. Cómo extraer archivos Tar a un directorio específico o diferente en Linux
  2. 3 formas de eliminar todos los archivos de un directorio excepto uno o pocos archivos con extensiones
  3. Diez consejos útiles para escribir scripts Bash eficaces en Linux
  4. Cómo utilizar expresiones regulares y Awk 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.