Pregunta 1¿Con qué coincide el comodín *?
Encontrar archivos — find y comodines
Aprende a indicar muchos nombres de archivo a la vez con los comodines * ? [], y cómo find busca por nombre con -name y por tipo con -type — todo práctico en una terminal del navegador.
Comodines — * ? []
Los comodines son símbolos para indicar parte de un nombre de archivo de forma masiva.
* coincide con una secuencia de cero o más caracteres, ? coincide con exactamente un carácter y [] coincide con cualquiera de los caracteres dentro de los corchetes.
Combínalos con ls, como ls *.txt, para listar solo los nombres que coincidan.
* coincide con cualquier secuencia, ? con un carácter y [] con cualquiera de los caracteres dentro de los corchetes.| Símbolo | Con qué coincide | Ejemplo | Archivos que coinciden |
|---|---|---|---|
* | Una secuencia de cero o más caracteres | *.txt | a.txt note.txt |
? | Exactamente un carácter | log?.txt | log1.txt (log10.txt no coincide) |
[...] | Cualquiera de los caracteres dentro de los corchetes | log[12].txt | log1.txt log2.txt |
[a-c] | Cualquier carácter del rango | f[a-c].txt | fa.txt fb.txt fc.txt |
touch a.txt b.txt note.log # crear archivos material
ls *.txt # a.txt b.txt
ls *.log # note.log
ls ?.txt # a.txt b.txt (un car. + .txt)
Un carácter o una elección — ? y []
? siempre coincide con exactamente un carácter, así que úsalo cuando quieras fijar el número de caracteres.
[] coincide con cualquiera de los caracteres escritos dentro de los corchetes, así que [12] es 1 o 2, y puedes escribir un rango como [a-c].
Acotan los objetivos de forma más precisa que *.
touch log1.txt log2.txt log9.txt logA.txt # crear material
ls log?.txt # los 4 con un car. final
ls log[12].txt # solo log1.txt log2.txt
Buscar por condición — find -name / -type
find recorre de forma recursiva por debajo de un directorio de inicio y busca lo que cumpla una condición.
Con find inicio -name 'patrón' condicionas por el nombre, y con -type f (archivo) o -type d (directorio) condicionas por el tipo.
Úsalo para encontrar archivos por nombre cuando están enterrados en lo profundo de la jerarquía.
| Condición | Significado | Ejemplo |
|---|---|---|
-name 'patrón' | El nombre coincide con el patrón | find . -name '*.log' |
-type f | Solo archivos normales | find . -type f |
-type d | Solo directorios | find . -type d |
-name filtra por patrón de nombre, -type f por archivo y -type d por directorio.mkdir -p tree/sub # crear el árbol material
touch tree/a.txt tree/sub/b.txt # colocar archivos en la jerarquía
find tree -name '*.txt' # buscar .txt bajo tree recursivamente
find tree -type d # solo directorios bajo tree
Pon entre comillas el patrón de find
Envuelve el '*.txt' de find . -name '*.txt' en comillas simples.
Sin comillas, la shell expande * primero, lo que puede apuntar a algo distinto de lo que pretendías.
La regla básica es poner entre comillas el patrón de -name y pasárselo al propio find.
Verificación de conocimientos
Responde cada pregunta una a una.
Pregunta 2¿Con qué archivos coincide ls log[12].txt?
Pregunta 3¿Qué se muestra al ejecutar find tree -type d?