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