Linux usa los comodines para la sustitución de caracteres o secuencia de caracteres. Estos caracteres comodín nos puede ser de mucha utilidad cuando lanzamos el comando de para buscar un archivo, o varios archivos o directorios cuyo nombre contiene una determinada secuencia de caracteres.
![]() |
Caracteres comodín y expresiones regulares para Linux
|
El comodín “*”: Sustituye una cadena de caracteres del nombre del archivo o directorio. Cuando se usa el carácter “*” para referirse al nombre de un archivo o directorio, el intérprete de comandos lo sustituye por todas las combinaciones posibles de caracteres del nombre de los archivos y directorios dentro del directorio, que nos estamos refiriendo.
Por ejemplo, supongamos que en el directorio del usuario aceitunero tenemos varios directorios, como puede ser aceitunero, antonio y invitado.
Si observamos todos estos directorios termina en “o”, si lanzamos el comando ls nos mostrará todos los archivos y directorios que tenemos:
aceitunero@Pc15:~$ ls
aceitunero Documentos Imágenes Plantillas Videos
antonio Escritorio invitado Público
Descargas examples.desktop Música salida.txt
Pero si queremos listar todos los archivos que termina con la letra “o”, usaremos en esta línea de comandos el comodín "*", y el resultado sería:
aceitunero@Pc15:~$ ls *o
aceitunero:
antonio:
Escritorio:
Imagenes_ISO introduccion_linux_2010
invitado:
Público:
Como podemos ver, el comodín “*” ha sustituido todos los caracteres anteriores al carácter, que se ha introducido y ha realizado las combinaciones posibles de caracteres para mostrar los todos los archivos y directorios que terminen con la letra “o” del directorio, donde nos encontramos. Otros ejemplos sería:
aceitunero@Pc15:~$ ls a*
aceitunero:
total 0
antonio:
total 0
El comodín “?”: Este carácter comodín sólo sustituye solo un carácter, por ejemplo:
aceitunero@Pc15:~$ ls -ld antoni?
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 antonio
aceitunero@Pc15:~$ ls -ld ?*o
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 aceitunero
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 antonio
drwxr-xr-x 5 aceitunero aceitunero 4096 2011-05-05 16:17 Escritorio
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 invitado
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Público
Los caracteres comodín nos permiten referirse a más de un archivo a la vez.
También podemos usarlos en combinación con otros comandos, por ejemplo con el comando cp o el comando mv, para copiar o mover varios archivos de una vez. Por ejemplo:
aceitunero@Pc15:~$ mkdir archivos_host
aceitunero@Pc15:~$ cp /etc/host* /home/aceitunero/archivos_host/
aceitunero@Pc15:~$ cd archivos_host/
aceitunero@Pc15:~/ archivos_host$ ls
host.conf hostname hosts hosts.allow hosts.deny
Lo que estamos haciendo es copiar todos los archivos del directorio /etc que comiencen con “host” al directorio /home/aceitunero/archivos_host/.
El comodín [ ]: Los corchete se utilizan para pasar un rango de caracteres, que tomará para realizar la búsqueda, por ejemplo:
aceitunero@Pc15:~$ ls -ld [a-c]*
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 aceitunero
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 antonio
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-05 16:35 archivos_host
-rw-r--r-- 1 aceitunero aceitunero 79 2011-05-04 19:40 basura.txt
El listado que nos muestra son los archivos o directorios que comienza en “a” hasta la “c” incluidas y como hemos pasado también el carácter comodín “*” tomará cualquier carácter que le preceda. Otros ejemplos:
aceitunero@Pc15:~$ ls -ld [a-c]*o
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 aceitunero
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 antonio
aceitunero@Pc15:~$ ls -ld *[a-c]
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Música
El comodín !: La exclamación se utilizan para denegar el rango de caracteres, que se pasa, es decir, tomará todos los caracteres menos los que se pasen para realizar la búsqueda, por ejemplo:
aceitunero@Pc15:~$ ls -ld [!a-c]*
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Descargas
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Documentos
drwxr-xr-x 5 aceitunero aceitunero 4096 2011-05-05 16:17 Escritorio
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Imágenes
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 invitado
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Música
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Plantillas
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Público
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Videos
El listado que nos muestra son los archivos o directorios que NO comienza por “a” hasta la “c” incluidas y como hemos pasado también el carácter comodín “*” tomará cualquier variación de caracteres. Otros ejemplos:
aceitunero@Pc15:~$ ls -ld [!a-c]*o
drwxr-xr-x 5 aceitunero aceitunero 4096 2011-05-05 16:17 Escritorio
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 invitado
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Público
aceitunero@Pc15:~$ ls -ld *[!o-s]
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-05 16:35 archivos_host
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Música
El comodín { }: Las llaves se utilizan para pasar un numero de caracteres, que se usarán para realizar la búsqueda de los archivos y directorios que contenga eso caracteres, por ejemplo:
aceitunero@Pc15:~$ ls -ld {a,b}*
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 aceitunero
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 antonio
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-05 16:35 archivos_host
-rw-r--r-- 1 aceitunero aceitunero 79 2011-05-04 19:40 basura.txt
El listado que nos muestra son los archivos o directorios que comienza en “a” y los que comienzan por “b” y con el carácter comodín “*” tomará cualquier otro carácter. Otros ejemplos:
aceitunero@Pc15:~$ ls -ld {a,c}*o
ls: no se puede acceder a c*o: No existe el fichero o el directorio
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 aceitunero
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 antonio
aceitunero@Pc15:~$ ls -ld *{a,c}
drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Música
Como podéis observar estas combinaciones de los comodines nos puede ayudar a la hora de copiar, mover, listar, etc. un conjunto de archivos o directorios de una forma sencilla.
Espero que os sea de ayuda a todos un saludo y espero que dejes tu comentario:
Antonio
Gracias!
ResponderEliminarMe fue útil para resolver una duda rápidamente.
Me alegro mucho que te resultara de ayuda este artículo. Gracias y un saludo.
EliminarBuenas Antonio!
ResponderEliminarGracias por la info. A pesar que el post tiene ya unos 6 años, ¡es tremendamente útil!
Me estaba volviendo loco intentando mover archivos que comiencen con determinada letra y luego *.
Un saludo, gracias nuevamente!
Sir Chaox | IT Repair You
Absolutamente cierto, muy bien explicado, los profes podrían darse el trabajo de de explicar asi de simple y ordenado!
EliminarGracias a vosotros por los ánimos ... aunque si bien es cierto que tengo mi blog un poco abandonado... :-(
EliminarIntentaré ponerle remedio y un millón de gracias de nuevo.
gracias por publicar la info, me sirvió , un saludo aceitunero
ResponderEliminarpuedo hacer esto:
ResponderEliminarecho $(ls *$Variable*)
para listar archivos pero con el valor de la variable, que podria hacer?
Hola amigo:
EliminarNo entiendo muy bien, lo que quieres preguntar, sobre:
“Puedo hacer esto: echo $(ls *$Variable*) para listar archivos pero con el valor de la variable, que podría hacer?”
Pero el comando “ls” se usa en #Linux para listar el contenido de directorios y archivos contenidos en un directorio y ver a que usuarios y grupos pertenecen y sus permisos.
No crees, que estás rizando mucho el rizo.
Perdona no poderte ayudar más, pero de todas formas estoy a tu disposición, ok
Un saludo:
Antonio