Consultas, desarrollo de programas y petición de presupuestos:

jueves, 12 de julio de 2012

Comodines en gnu/linux o de expansión.

Caracteres especiales para hacer referencias a nombre de ficheros y directorios, basandose en parte de esos nombres:
*”→ se va a sustituir por CERO o más caracteres: ejemplo: *.txt, hace referencia a todos los archivos que terminen en “.txt”
ejemplo: *.* hace referencia a todos los archivos que contengan un punto “.”, no es como windows.
En gnu/linux no existe el concepto de extensión (el nombre es todo, por ejemplo podemos poner .tar.gz). Para hacer referencia a todos seria: ls *
Otro ejemplo: ls *e.txt :te muestra todos los archivos que terminen en “e.txt”, en windows daria todos los que terminen en “.txt”

?” → sustituye a un único carácter. Por ejemplo: ls c?sta, nos mostraria: cesta,cEsta,cOsta,c4sta,....
nota para “vacio” (cero caracteres) no vale: csta no lo muestra.

[]” → el contenido del corchete se sustituye por un carácter de la lista
ejemplo de uso: ls c[EO]sta, mostraría cEsta, cOsta (no mostraría cesta,costa,c4sta)
otro ejemplo:
ls c[A-Z]sta, el intervalo valido seria de la A a la Z, en mayúsculas.
Para poner mayúsculas y minusculas:
ls c[A-Za-z]sta
Si nos enteresa son numeros.
Ls c[0-9]sta, mostraria c4sta. Nos mostraria c0sta,c1sta, asi hasta el c9sta (1 sola cifra por [])
para c10sta, lo podemos hacer ls c[0-9][0-9]sta, nos mostraria desde el 00 al 99. (pero no c0sta)

Para mostara las dos opciones: c0sta al c9sta y del c00sta al c99sta, seria:

ls c[0-9]sta c[0-9][0-9]sta

Si el primer carácter al abrir el corchete es la “!”, estamos diciendo los que sean distintos:
ls c[!0-9]sta → no saldria c4sta, y si cesta,cEsta,costa,casta.

Nota:
los comandos manejan más de un fichero

~” → nuestro directorio domicilio “/home/usuario/”.

La expansión de los comodines:
La shell con los comodines comprueba los ficheros que coinciden y saca una lista de estos
$ls *.txt
la shell lo convierte en lista de resultado: primero.txt segundo.txt tercero.txt
$ls primero.txt segundo.txt tercero.txt
y ejecuta ls
Si no encuentra ninguno que coincida, no sustituye *.txt y ejecuta ls *.txt, siendo “*” como un carácter dando que no existe.

Lo que entra en nuestros programas de C, es la expansión (lista de resultados), osea la lista de ficheros separados en espacios en blanco. Si no existiera te pasa “*.txt”

Nota:
Si ponemos ls “*.txt”, no te expande.

“{}” → admiten 0 o mas caracteres pero no comprueba la lista de fichero. Da combinaciones que no existe.
Ejemplo:
Tenemos los siguientes archivos existentes en el directorio: cAsta,cesta,cEsta,cOsta,c4sta
ls c{A..Z}sta daria: cAsta,cBsta,cCsta,cEsta,cZsta,csta sin comprobar si esos archivos existen o no.
(el “–“ se sustituye por el “..”)
Osea te puede dar mas problemas que ventajas, por lo tanto mejor no usarla.

No hay comentarios:

Publicar un comentario en la entrada