No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Wildcards

7/23
Recursos

Las wildcards o comodines son una serie de caracteres especiales que nos permiten encontrar patrones o realizar búsquedas más avanzadas. Es aplicable para archivos y directorios.

Las wildcards te sirven para realizar seccionamiento de archivos o directorios, ademas de ls los wildcards tambien pueden usarse con cualquier comando que realice la manipulación de archivos como mv, cp y rm.

Tipos de wildcards

Buscar todo (*)

El asterisco te ayuda a buscar toda la información dentro de una carpeta, pero puedes limitar su uso. Si por ejemplo quieres buscar los archivos que tengan una extensión “.png”, escribes:

ls -l *.png
image.png

También lo puedes poner al final, si quisieras buscar, todos los archivos que comiencen por unos caracteres específicos, entonces escribes esos caracteres y luego el asterisco.

Por ejemplo, si quisieras buscar todos los archivos que comiencen por “fotosDe”, habría que escribir:

ls -l fotoDe*
image.png

Buscar por cantidad de caracteres (?)

Si dentro de tus archivos tuvieras una especie de código para guardar tus fotos, algo así como “foto1.png”, “foto2.png”, “foto3.png”, etc. En este caso, sabemos que primero tenemos el string “foto”, luego un solo número y por último la extensión “.png”.

Si quisieras buscar esas fotos escribirías:

ls -l foto?.png
image.png

Aquí estás indicando:

  • Busca todo lo que comience por la cadena de caracteres “foto”
  • Que inmediatamente después tenga un solo caracter
  • Y que al final tenga la cadena de caracteres “.png”

Pero si sabes que no tiene un solo caracter, sino que tiene varios, entonces escribes tantos signos de interrogación como caracteres existan. Por ejemplo, si quieres buscar las fotos que tengan esta estructura “foto11.jpg”, escribes:

ls -l foto??.jpg
image.png

También puedes combinar wildcards. Por ejemplo, si sabes que tus fotos siguen esta especie de código, pero no sabes que extensión tienen, escribes:

ls -l foto?.*
image.png

Aquí estás indicando:

  • Busca todo lo que comience por “foto”
  • Que inmediatamente después tenga un solo caracter
  • Y que tenga lo que sea después del punto

Buscar por caracteres específicos ([])

Si quieres buscar por varios caracteres específicos se usan corchetes. Para utilizarlos tienes que colocar dentro de los corchetes los caracteres que quieres buscar.

Por ejemplo, si quisieras buscar los archivos que comiencen por las letras “c” o “i”, entonces escribes:

ls -l [ci]*
image.png

Lo que indica el comando es que busque los archivos que comiencen por la letra “c” o por la letra “i” y que tengan lo que sea por delante. Cuando buscamos con esta wildcard ten en cuenta que es case sensitive, por lo que la letra “i” no es lo mismo que la letra “I”.

ls -l [cCiI]*
image.png

Por último, si quieres buscar por rango de números también tienes que usar esta wildcard. Para hacerlo, escribe el rango de números que quieres buscar separados por un guion.

ls -l foto[2-6]*
image.png

Lo que indica ese comando es:

  • Busca todo lo que comience por la cadena de texto “foto”
  • Que justo después tenga un número entre el 2 y el 6
  • Y que tenga lo que sea por delante.

Tabla de wildcards

Wildcard Función
* Busca todo
? Busca por cantidad de caracteres
[] Busca por caracteres específicos

Contribución creada con los aportes de: Miguel Gonzalez, Maximiliano Nahuelanca y Brayan Alexis Lechon

Aportes 542

Preguntas 88

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Las wildcards nos sirven para realizar seccionamiento de archivos o directorios, ademas de ls los wildcards tambien pueden usarse con cualquier comando que realize la manipulacion de archivos como mv, cp y rm. En este ejemplo yo movi todos los archivo .py hacia una carpeta

la verdad si es un superpoder 😃

Para buscar por números podemos usar

[:alnum:]
[:digit:]

Algo importante a aclarar es que el asterisco * significa cualquier STRING o cadena de texto, entonces si ponemos ls *.txt cualquier archivo .txt se listará.
.
Y el signo de interrogación ? significa que ese último dato puede ser cualquier arbitrario, pero sólo ese último.
.

Entonces en resumen, el * se expande de 0 a más caracteres, mientras que ? expande a uno exactamente.

Clases dentro de los Wildcards:

  • [:alnum:] Coincide con cualquier carácter alfanumérico
  • [:alpha:] Coincide con cualquier carácter alfabético
  • [:digit:] Coincide con cualquier número
  • [:lower:] Coincide con cualquier letra minúscula
  • [:upper:] Coincide con cualquier letra mayúscula

Wildcard

💡Alternativamente llamado como wild character o wildcard character.
.
Definición

Son un símbolo usado para remplazar o representar uno más caracteres donde comúnmente se utiliza el * .

.
Tipos de wildcards

  • % - Usado en SQL para relacionar más de un caracteres 0 o más veces.
  • * - Relaciona cualquier carácter 0 o más veces.
  • ? - Para relacionar un caracter una vez.
  • [ ] - Realizamos relaciones a través de expresiones regular.

Cabe mencionar que los wildcard, pueden ser utilizar como prefijo o postfijo:

# prefijo
dir *.mp3
# postfijo
dir main.*

Para no tener que escribir el comando completo, simplemente ejecuto el alias.
Si quieren que el alias permanezca en la terminal y no se pierda cuando la cierren pueden guardar los alias al final del archivo que se encuentra en el home de cada pc llamado en el caso de bash es ~/.bashrc y después de guardarlo le das el comando source ~/.bashrc para que se apliquen los cambios.

Tengo bastantes alias para poder hacer mucho más rápido mis tareas, estos son algunos de los que uso:

# aliases
alias c="clear"
alias s="cd .."
alias sgit='f(){ git add "$1"; git commit -m "$2"; git push; unset -f f; }; f'
alias gs="git status"
alias ch="chmod +100"
alias g="gcc -Wall -Wextra -Werror -pedantic"
alias p="pep8 *.py"
alias server1="ssh [email protected] '$1'"
alias server2="ssh [email protected] '$1'"
alias LB="ssh [email protected] '$1'"
alias dock="sudo docker"

Notas 😄
Wildcards

  • Son una serie de caracteres especiales que nos permiten realizar búsquedas muy avanzadas utilizando ls 🔍. Puedes utilizar wildcards con otros comandos que realicen manipulación de archivos como mv, cp o rm 💫. También se conocen como comodines.
  • ls *<texto>: Nos muestra todos los archivos que tengan en su nombre dicho texto al final. Si haces ls <texto>* lo busca al final. El asterisco significa cualquier string.
  • ls <text>? El signo de interrogación sustituye a cualquier carácter, por ejemplo, buscamos todos los archivos que tengan una palabra y un número dado de caracteres después. El signo de interrogación significa cualquier carácter.
  • ls [[:upper:]]* Para filtrar cosas que inicien que una mayúscula; esto busca también dentro de los directorios.
  • ls [[:lower:]]* Lo mismo pero con minúsculas.
  • ls -d Se muestran solo directorios.
  • ls [ad]* Todo lo que inicie con a o con b

6. Wildcards

Les comparto mis apuntes sobre esta clase:

Vamos a aprender qué son las wildcards,

  1. ls *.txt: Lo que hace este comando es listar todos los archivos que tengan extensión .txt, independientemente del nombre que tengan.
  2. ls datos*: Lo que hace este comando es listar todos los archivos que inicien con la palabra “datos”, independientemente de cómo siga el nombre o la extensión que tenga.
  3. ls datos?: Lo que hace este comando es listar todos los archivos que inicien con la palabra “datos” y solamente tengan un caracter más luego de esa palabra.
  4. ls datos???: Lo que hace este comando es listar todos los archivos que inicien con la palabra “datos” y solamente tengan tres caracteres más luego de esa palabra.
  5. ls [[:upper:]]*: Lo que hace este comando es listar todos los archivos que inicien con una mayúscula, independientemente de cómo siga el nombre o la extensión que tenga.
  6. ls -d [[:upper:]]*: Lo que hace este comando es listar todos los DIRECTORIOS que inicien con una mayúscula, independientemente de cómo siga el nombre que tenga.
  7. ls [[:lower:]]*: Lo que hace este comando es listar todos los DIRECTORIOS que inicien con una minúscula, independientemente de cómo siga el nombre o la extensión que tenga.
  8. ls [ad]*: Lo que hace este comando es listar todos los archivos que inicien con la letra “a” o con la letra “d”, independientemente de cómo siga el nombre o la extensión que tenga.

.
Algo bastante útil para hacer cuando trabajas en Windows y con WSL (yo lo hago toda la vida),

Cuando descargo imágenes en windows y las quiero pasar a mi carpeta de proyecto, lo que hago es bajarlas en una carpeta en windows y luego las copio a mi repositorio que uso desde la terminal, ¿cómo hago?

Pues siempre he usado este truco con wildcards:

mv *.jpg ~/GithubPages/cardGame/

¿Qué es lo que hace este comando?

Pues que copio todos los archivos que sean de extensión png desde mi carpeta en el disco C hacia mi carpeta que uso dentro de WSL.

¿Por qué no simplemente descargo directamente en la carpeta de usuario Linux desde Chrome/Firefox?

En realidad Windows sí te lo permite, PERO NO LO HAGAS, dos veces he tenido que formatear el disco completo por problema en el sistema de archivos por haber descargado desde Chrome hacia la carpeta dentro de Linux, no lo hagan, mal[isima idea, y más bien pueden aprovechar el truco que compartí 😃.

📦 Las wildcards o comodines nos permiten realizar búsquedas más avanzadas, es aplicable para archivos y directorios.

Aquí esta una recopilación de todos mis aliases por si les quieres hechar un vistazo.

# aliases:

# git
alias g="git"
alias gst="git status"
alias gc="git clone"
alias gcm="git commit -m"
alias grc="git rm -r --cached"
alias gph="git push origin" 
alias config="/usr/bin/git --git-dir=$HOME/.config-files/ --work-tree=$HOME" # Turns my home in a git repo
alias ginit="git init;touch README.md; git add README.md;git commit -m 'first commit';git branch -M main"

# cd commands

alias ..="cd .."
alias ...="cd ../.."
alias 3..="cd ../../.."

# cp commands
alias cp="cp -r" # set cp to allways copy directories

# Development

alias p="python3"
alias cl="clear"
alias cdM="cd ~/MEGA/"
alias cdMG="cd ~/MEGA/my-git/github"
alias cdC="cd ~/.config/"
# installing packages

alias install="sudo pacman -S" # install any pagckage
alias search="pacman -Ss" # Search for a package
alias sync="pacman -Syy" # sync the repos
alias update="sudo pacman -Syu" # Update the system, but not AUR
alias onlyAUR="yay -Sua --noconfirm" # Update onlyAUR

# Other aliases 
# Emacs

alias em="/usr/bin/emacs -nw" # for terminal
alias emacs="emacsclient -c -a 'emacs'" # For an instance

# Aliases for Windows managers server
alias qtile_log="cd ~/.local/share/qtile; bat qtile.log"
alias qtile_server="Xephyr -br -ac -noreset -screen 1300x730 :1 & DISPLAY=:1 qtile"
alias awesome_server="Xephyr -br -ac -noreset -screen 1300x730 :1 & DISPLAY=:1 awesome ~/.config/awesome/rc.lua"


alias ls='exa -a --color=always --group-directories-first' # my preferred listing
alias la='exa -al --color=always --group-directories-first'  # all files and dirs
alias ll='exa -l --color=always --group-directories-first'  # long format
# alias lt='exa -aT --color=always --group-directories-first' # tree listing
alias l.='exa -a | egrep "^\."' 

Alias para ir al directorio de mi área de estudio en Platzi

#Desarrollo web Platzi
alias plat='cd /Users/~/Documents/Curso_Desarrollo_Web'
alias oplat='open /Users/~/Documents/Curso_Desarrollo_Web'


Para encontrar archivos o directorios con números también se puede usar:

 ls *[0-9]*

Eso listara cualquier archivo que tenga un numero en el nombre

Aquí hay más usos útiles para los wildcards

¿Han visto el meme de “El sentido de la vida, el universo y todo lo demás es 42”? su origen se explica con este tema:

Dentro de la tabla ASCII el 42 es el de * que equivale a una wildcard de cualquier cosa (alt/cmd + 42 = *).

Algo que aprendi y que me ahorro mucho timp a la hora de crear archivos en secuencia fue este truquito:

Se lo sabian?

💡 Encontré este documento que muestra todas las posibles combinaciones cuando usamos el doble corchete (como el [[:lower:]]): Character Classes and Bracket Expressions

Hoy estaba practicando un poco mientras hacía mi web, y trataba de no usar el mouse para moverme, y mi hermana entra a mi habitación y ve que no toco el mouse para nada y me dice “Es hacker” 😂

Los wilcards no solo se pueden utilizar para el comando ls, lo puedes aplicar también para el comando rm.
Ejemplo, tengo estos archivos; archivo1, archivo2, archivo3, etc, entonces para eliminar todos esos archivos, podríamos ejecutar el comando rm archivo*
Recuerden que siempre hay que tener cuidado con el comando rm.

Solo a mi me pasa que para buscar los archivos tengo que estar dentro de la carpeta que los contiene? Osea si estoy una carpeta “atras” me tira que no encontro ningun documento o directorio

Yo trabajo en WSL y un alias para mi útil es wh (Windows Home) porque así voy rápidamente a mi home en Windows 😀

yo cree este alias que me sirve en mi dia a dia

alias buenosDias="sudo apt update && sudo apt upgrade -y && code ."

Para python me vendra bien alias avenv='source venv/bin/activate'

Yo tengo un alias como este

alias firewall1=’ssh [email protected]127.0.0.1

Ya que necesito conectarme a algunos equipos y para evitar escribir los datos le doy un nombre facil de recordar.

Las wildcards o comodines son una serie de caracteres especiales que nos permiten encontrar patrones o realizar búsquedas más avanzadas, es aplicable para archivos y directorios. Se realiza con el comando ls

  • ls *.txt : Busca todas las coincidencias de archivos .segun su extension. En este caso .txt.

  • ls ‘nombreArchivo’*: Busca todas las coincidencias de ‘nombreArchivo’

  • ls ‘nombreArchivo’?: Busca todos los ‘nombreArchivo’ y solamente 1 carácter al final. Los signos de interrogacion representan los caracteres que queremos al final.

  • ls [[:upper:]]*: Filtra todos los archivos y directorios que incian con mayuscula y que tengan unas sucesion de caracteres.

  • ls [[:upper:]]*: Filtra todos los archivos y directorios que incian con minuscula y que tengan unas sucesion de caracteres.

  • ls -d : Busca solamente carpetas

  • ls [‘letrasDeInicio´]*: Nos busca los archivos que empiezen por las letras indicadas

Bueno, practiquemos =)

Con [:digit:] pude filtrar archivos que contuvieran numeros, y como no tenia ninguno que iniciara con algun digito, decidi filtrar en caso de que simplemente estuviera contenido en el nombre del archivo

No me juzguen, pero…

 alias xxx="google-chrome --new-window https://xvideos.com" 

Yo usando … y sin tener ninguna mayuscula en las carpetas, con razón no sale nada 😅

ls -d [[:upper:]]*

Un detalle. Yo estoy en WSL y cuando ejecuto ls -d [[:upper:]] no es que con el flag -d me busque solo los directorios, sino que me busca (archivos y directorios) en el directorio actual sin bajar más niveles, es decir, funciona igual que el ejemplo de ls -d [[:lower:]]

Comandos usados hasta ahora

▪ ls : para mostrar la lista de archivos y directorios.
▪ ls -l: Muestra más información de los archivos.
▪ ls -lh: Muestra información más entendible para los humanos.
▪ cd: Para cambiar de directorio.
▪ clear: Para limpiar la consola o ctrl + l.
▪ cd: Nos lleva al home directamente.
▪ pwd: nos muestra la ruta donde estamos.
▪ ctrl + shift + c: copiar texto de la terminal.
▪ file nombre_del_archivo:  Para saber el tipo de archivo
▪ ls -la: muestra todos los archivos incluyendo los ocultos.
▪ ls -lS: Ordena los archivos por tamaño
▪ ls -lr: Los ordena al contrario del orden alfabético
▪ tree: Despliega todos los archivos como si fueran un árbol.
▪ tree -L (número de niveles en los que se quiere profundizar) 
▪ mkdir: Crear un directorio, con comillas se puede crear un directorio con espacio
▪ touch: crear un archivo 
▪ cp nombre_del_archivo (nuevo nombre de la copia): Para copiar un archivo 
▪ mv nombre_del_archivo .. : mover archivo al directorio anterior 
▪ mv nombre_del_archivo renombre_del_archivo: También sirve para renombrar.
▪ rm nombre_del_archivo: eliminar el archivo.
▪ rm -(guion largo posiblemente) nombre_del_archivo: pregunta si de verdad se quiere eliminar el archivo.
▪ rm -ri: nombre_del_directorio: Sirve para eliminar un directorio de forma interactiva.
▪ rm -rf: Borrar sin importar las consecuencias.  
▪ head nombre_del_archivo: Nos muestra las primeras 10 líneas de éste
▪ head nombre_del_archivo -n numero_de_lineas: muestra el número de líneas que quieras ver.
▪ tail nombre_del_archivo: Muestra las ultimas 10 líneas 
▪ tail nombre_del_archivo -n numero_de_lineas: muestra el número de las ultimas líneas que quieras ver.
▪ less nombre_del_archivo: Muestra el archivos de forma más dinámica, además podemos utilizar el slash( / ) seguido de la palabra a buscar, para hacer búsquedas dentro del archivo, para salir de la "interfaz" presionamos la letra "q".
▪ open nombre_del_archivo: Abrir archivos solo para MAC
▪ xdg-open: Para abrir archivos con un editor de texto predeterminado
▪ Ctrl + c:  para terminar con cualquier proceso
▪ type cualquier_comando: Nos muestra de que tipo es nuestro comando
▪ alias alias ="comando_original": Se crea un apodo, sinónimo o alias del comando original solo serán accedidos mientras no cierres la ventana de comandos.
▪  comando --help: Sirve para pedir ayuda sobre los comandos
▪ man comando: Hace referencia al manual de usuario de un comando.
▪ info comando: También sirve para ver información de un comando.
▪ Whatis comando: Nos da una descripción corta de lo que hace el comando aunque no funciona con todos los comando.

Wildcards

▪ ls *.txt: Muestra todos los archivos que terminen en .txt
▪ ls parámetro* : Muestra todos los archivos que coincidan con el parámetro buscado.
▪ ls parámetro? : Muestra los archivos que solo tengan un solo carácter después del parámetro buscado, si se usan más signos de interrogación buscara solo lo que coincidan con la búsqueda, ejemplo: parametro??? Se traerá el parámetro más los siguientes tres caracteres que acompañen el nombre del archivo.
▪ ls [[:upper:]]* : busca todos los archivos y directorios que comienzan mayúscula y tengan una sucesión de caracteres.
▪ ls -d [[:upper:]]* : busca solo los directorios que comienzan con mayúscula y tengan una sucesión de caracteres.
▪ ls [[:lower:]]* : busca todos los archivos y directorios que comienzan con minúscula y tengan una sucesión de caracteres.
▪ ls -d [[:lower:]]* : busca solo los directorios que comienzan minúscula y tengan una sucesión de caracteres.
▪ Ls [ad]* : Funciona para hacer una búsqueda por caracteres muestra todos los archivos que comienzan con a con d en este caso.

Para la creacion de multiples archivos de forma recursiva pueden usar el siguiente comando :

touch name{1..6}.txt

Esto creara 6 archivos : name1.txt name2.txt etc…

A pesar de ser mi tercer curso de la terminal siempre hay algo mas por aprender

Este es mi trabajo haciendo un alias para mostrar únicamente archivos de JavaScript.

Realizando el reto que comento el profesor de crear un Wildcard que buscara por números por ejemplo.

Realice otro donde pretendía buscar tras realizar una operación aritmética.
Aunque si devolvió algo no logro entender por que…

Filtrar archivos
ls *.txt->nos mostrará archivos que tengan .txt o lo que coloquemos en lugar de .txt .
.
ls datos * ->la usamos cuando tiene los caracteres al principio.
.
Cuando utilizamos (" * ") hay dos formas (*nombre) este lo utilizamos cuando el archivo a buscar tiene un punto adelante(tipo .html .txt .js), el otro es para buscar nombre de archivos.
.
ls datos? -> busca los archivos que tengan ese nombre y solo un caracter al final.

Las wildcard no son expresiones regulares, son parecidas, pero no lo son.

Wildcards: buenas opciones de búsqueda de archivos

Alias para buscar archivos que terminen con una extensión relacionada con desarrollo web.

Mi alias para listar a 2 niveles jerárquicos en forma de árbol 🌳 😜:

.
.
.

Mi aporte:
Si quieres buscar archivos que tengan determinada cadena de caracteres en cualquier punto del nombre puedes hacerlo usando $ls *cadena*.

Mira este ejemplo donde listo todos los archivos que contengan Definitivo en su nombre:

alejandro@DESKTOP:~/personalProjects/carpeta$ ls
index.html  indexDefinitivo.html  libro.txt  texto.txt  textoDefinitivo.txt
alejandro@DESKTOP:~/personalProjects/carpeta$ ls *Definitivo*
indexDefinitivo.html  textoDefinitivo.txt

Saludos 😃.

Uso de Wilcards

ls -d [[:upper:]]: lista archivos y carpetas que inician con mayúscula
ls -d [[:lower:]]: lisa de comandos

ls [ad]*
Inciia con vocal

ls [‘nuevo_nombre’]

😃
WILDCARDS
Son caracteres especiales que nos permiten encontrar patrones o hacer búsquedas muchos más avanzadas.
Este tipo de búsqueda lo vamos a realizar con el comando ls
📘🖋
Filtrar todos los archivos que terminen según el parámetro que indiquemos

ls *.txt

Filtrar todos los que digan datos

ls datos*

Filtrar los que digan datos y tengan un carácter al final ( ? )

ls datos?

??? = nos indica 3 caracteres, puede ser modificada según tu busqueda
Filtrar todos los archivos que inicien con una (a ó d)

ls [ad]*

Hola este es mi reto lo que intente fue hacer los 2 retos a la ves para poder hacer la practica de una mejor manera.

  • Realice un alias para poder mover contenido numérico a mi directorio anterior con el uso de Wildcards para poder detectar ese contenido numérico

Aquí el ejemplo :
alias mover="mv [[:digit:]]* .."
Lo que me permite es demostrar un uso adicional de estas no solo para buscar si no para poder ejecutar otras acciones como mover además del uso de esa clase para filtrar los contenidos con dígitos lo que hará es mover todos esos archivos numéricos a su carpeta anterior.

Experimentando un poco más también al usar un wildcard con ls puede mostrar coincidencias incluso dentro de carpetas 😮

Algunos de los wildcards más utilizados son:

*** El asterisco **representa cualquier conjunto de caracteres de un nombre de archivo.

? La interrogación representa un solo carácter (sea el que sea),

**[ ] Los corchetes representan clases de caracteres. **Por ejemplo para buscar cualquier carácter que represente un dígito pondríamos [0-9]

**– un guión **indica un rango de caracteres.

**~ La virguilla **al principio de una palabra se traduce como el nombre de tu directorio home. Si le añades el nombre de un usuario, se traduce como la ruta del directorio home de ese user.

Buscar archivos de texto

alias buscar_texto="ls *.txt"

La tabla de trucos para la linea de comandos que está adjunta a esta clase es lo máximo, recomiendo que se la descarguen, por ejemplo esta clase resumida se ve así.

Hola a todos!

Solución al ejercicio de como filtrar por números, tambien realize la combinación de 2 wildcards para hacer una búsqueda 😄

Esto es para encontrar los archivos que posean algún número. Colocando * al inicio y final, buscamos la coincidencia en cualquier elemento del archivo.

ls *[[:digit:]]*

Buscar todos los archivos HTML

$ alias htmlSearch = "ls *.html"

Son una serie de caracteres que nos permiten encontrar patrones o realizar búsquedas mucho mas avanzadas. Estas se hacen con el comando “ls”. Un ejemplo podría ser como si queremos encontrar todos los archivos que terminen en .txt, .html o que inicien con mayúscula.

ls *.txt

Este comando sirve para ver todos los archivos que terminen en .txt

ls datos*

Esto nos mostrara todos los documentos que empiecen con la palabra datos y después tengan cualquier carácter.

ls datos?

Nos mostrara todos los archivos que empiecen con la palabra datos y tengan UN SOLO CARACTER al final. Se pueden aumentar el numero de “?” para aumentar el numero de caracteres que buscamos en el archivo.

ls -d [[:upper:]]*

Esto nos mostrara todos los archivos que empiecen con una mayúscula (si queremos minúscula podemos sustituir upper por lower) y tengan cualquier carácter en cualquier cantidad. La opción “-d” es para solo ver DIRECTORIOS

ls [ad]*

Este comando nos muestra todos los ficheros o directorios que comienzan con una A o con una D y que les siga cualquier carácter

Para facilitar el acceso me cree un alias que me lleva al lugar donde estoy haciendo los ejercicios alias ejercicios="/mnt/c/Users/user/Desktop/PLATZI/" muy servicial la verdad

Esta pagina les puede servir para encontrar otros comandos de la terminal:
https://codingornot.com/04-shell-comandos-de-filtrado

Wildcard

Llamado tambien como wild character o wildcard character

Definición

Son un símbolo usado para remplazar o representar uno más caracteres donde comúnmente se utiliza el * .

.Tipos de wildcards

  • % - Usado en SQL para relacionar más de un caracteres 0 o más veces.
  • `` - Relaciona cualquier carácter 0 o más veces.
  • ? - Para relacionar un caracter una vez.
  • [ ] [ ] - Realizamos relaciones a través de expresiones regular.

Cabe mencionar que los wildcard, pueden ser utilizar como prefijo o postfijo:

# prefijo
dir *.mp3
# postfijo
dir main.*

para crear nuevo alias: alias aliasname=”command”

alias platzi=cd

Trabajo para una empresa realizando mantenimiento e implementacion de un sistema web, en mi entorno dev algo tedioso siempre era levantar el sistema, porque si no me movia con cd hasta la carpeta bin de mi servidor de aplicaciones para ejecutar el sh, de todos modos debia hacer el execute poniendo toda la ruta, ahora gracias a este curso cree un alias que cada vez que quiera levantar para hacer mis pruebas solo lo ejecuto y funciona muy bien, me ahorra mucho tecleo ademas que siempre que me llega una laguna mental del path jajja

Como filtrar con dígitos? Podemos usar varias formas, yo probe con estas:

ls [[:alnum:]]_*
ls [[:alnum:]][_]*
ls [[:alnum:]]\_*
ls *[[:digit:]]*
ls *?[[:digit:]]*
ls *?[10]*

Un comando util, podria ser este que me devuelve solo los archivos y no directorios:

 ls *.[[:alpha:]][[:alpha:]][[:alpha:]]

Me recordo a SQL

Contar todos los archivos de Python dentro del directorio actual:

find . -name "*.py" | wc -l

Apenas pusiste * pensé en REGEX 😄

Mis apuntes
Las wildcards son una serie de patrones o caracteres especiales que nos permiten realizar búsquedas avanzadas de archivos.
Podemos usarlos con diferentes comandos como: ls, mv, cp y rm.
Ejemplos:

  1. Filtrar archivos que terminen en una extensión en particular.
    ls *.txt
  2. Filtrar archivos que contengan una palabra en específico.
    ls datos*
  3. Filtrar archivos que contengan n caracteres después de la palabra especificada.
    ls datos?(repetimos el ? n veces)
  4. Filtrar todos los archivos y directorios que inicien con una mayúscula.
    ls [[:upper:]]* Busca en todo el árbol
    ls -d [[:upper:]]* Busca solo en el directorio actual
    ls [[:lower:]]* Busca en todo el árbol
  5. Mostrar todos los archivos que comiencen con una a o d.
    ls [ad]*
  6. Filtrar archivos que coincide con cualquier carácter alfanumérico
    ls [:alnum:]*
  7. Filtrar archivos que coincide con cualquier carácter alfabético
    ls [:alpha:]*
  8. Filtrar archivos que coincide con cualquier número
    ls [:digit:]*

Que son wildcards: son unas series de caracteres especiales que nos permiten encontrar patrones o realizar busquedas mucho más avanzada ese tipo de busqueda lo vamos hacer con el comando ls

Usamos wildcards para detectara una serie de patrón, ejemplos: para encontar todos los elementos_ txt, html o que inicien con mayusculas_

Para quién guste el ejemplo específico de esta clase es:

touch file.txt dot.txt dot2.txt index.html datos1 datos123 abc

Reto:

Solo me queda una duda:
¿Porqué con la wildcard de digit me muestra el index.html?

Saludos

Wildcards
Serie de caracteres especiales que nos permiten establecer patrones de búsqueda (acompañan al comando ls)

.
Wildcards usuales

    • → admiten cualquier caracter (o caracteres)
  • ? → admite cualquier caracter (solo uno, no vacío)
  • [<caracter>] → busca el caracter inidicado
  • [:upper:] → indica caracter de letra mayúscula
  • [:lower:] → indica caracter de letra minúscula
  • [:alnum:] → indica caracter de tipo alfanumérico
  • [:digit:] → indica caracter de tipo numérico

.
Nota importante
Los wildcards indican coincidencia de acuerdo a la posición en la que se coloque, ejemplo:

  • ls *a → busca los archivos que terminan en a
  • ls a* → busca los archivos que inician en a
  • ls a → busca los archivos que contienen la letra a

.
Nota

  • La opción -d de ls permite listar sólo los directorios

Como aporte les dejo que se puede filtrar con wildcards por delante y detrás al mismo tiempo. De esta manera, filtramos (en este caso) todos los archivos o directorios que tengan una i en algún lugar de su nombre.

Este es mi alias, cuando escribo js me muestra todos los archivos con esa extensión:

Para solucionar el reto, creé un alias para listar los archivos .py:

alias lspy="ls -lh *.py"

Ejemplo:

✅Solución al reto:
Creé un alias para filtrar todos los png

Para filtrar por números:

  • Busca cualquier dígito:
ls *[0-9]*
ls *[[:digit:]]*
  • Busca un dígito específico dentro del nombre, por ejemplo, 4:
ls *[:4:]*
  • Busca un archivo llamado “4”, específicamente:
ls [:4:]

Saludos

Las wildcars son caracteres especiales que nos ayudan a hacer búsquedas más avanzadas para encontrar archivos con cualquier comando que nos permita manipular o visualizar archivos o directorios, tales como ls, rm, cp o mv

Ver todo “*”

Este wildcar nos permite acceder a todos los archivos que cumplan con cierto parametro como por ejemplo:

ls *.txt

Este comando nos permite acceder a todos los archivos que tengan “txt” independientemente del nombre del archivo

ls info.*

Este comando nos permite acceder a todos los achivos que se llamen “info” independientemente de la extension del archivo

?

Este wildcar permite acceder a archivos dependiendo del numero de “?”, que son los digitos desconocidos que tiene

rm archivos??.*

Este comando me permitira remover archivos que aparte del nombre archivos tengan otros dos digitos como “archivos10” o “archivos73” y que aparte sea de cualquier tipo de extencion

[]

Permite hacer diferentes tipos de busqueda

ls [[:upper:]] or [[:lower:]].txt

Te permitira acceder a los archivos que comienzen con mayuscula o minuscula y que sean de extension “txt”

ls [asb]*

Te permitira acceder a archivos que empiezen con a, s o b y que tengan lo que sea por delante

ls [archivo 10-12].py

Te permitira acceder a archivos que se llamen archivos y que tengan un rango del 10 al 12 en el nombre, y que sean de formato py

{}

Permite filtrar varios tipos de parametros de busqueda

ls ‘Web Capture’*.{jpeg, png}

Me traera todos los archivos que comienzen con “Web Capture” y que sean de extension jpeg o png

¡Se logro!, la verdad nunca pense en lo útil que es este curso y eso que aún no lo he terminado; en mi caso tengo windows y use la terminal de Ubuntu pues muchas veces me toca probar si me funciona en gitbash o en ubuntu.

Wildcards con dígitos.

.
Se me ocurre… buscar los backups realizados en el mes 6 de cada año:
.

.
Y si hay que pasarlos a alguna parte, podríamos hacerlo, o también copiarlo:

Creo alias para ir a windows desde wsl:
alias win=“cd /mnt/c”

ls -lad *[0-9]*

Encontré el comando para los números : ) Con el 0-9 se crea un rango. La d (-lad) es para que solo busque en el directorio, sin recursividad.

Hola les comparto mi código. Éxitos.

[email protected]:~$ mkdir 123 f34 44 124
[email protected]:~$ ls
1 124 abc datos123 dir2 dot2.txt file_copi index.html
123 44 datos1 dir doc.txt f34 flie.txt mearchivo.txt
[email protected]:~$ ls [134]*
1:

123:

124:

44:

¡Hola!
Para buscar archivos con dígitos, yo lo hice de la siguiente manera.

Mi cerebro anda a otro nivel ahora mismo jajaja me siento hacker. Que buenasas estan las Wildcards!

Que interesante el tema de las wildcards

Ejercicio

Sobre esta Clase.
Clase 6
https://platzi.com/clases/2292-terminal/37346-wildcards/
Wildcards

Las wildcards son una serie de caracteres especiales que nos permiten encontrar patrones, realizar búsquedas mucho más avanzadas. Este tipo de búsquedas las vamos a hacer con el comando ls.

¿Por qué son útiles?

En vez de utilizar ls para buscar una lista interminable de archivos las wildcards nos permiten buscar patrones específicos.

Por ejemplo todos los archivos que terminen en txt, o los que sean html y que además inicien con mayúsculas.

ls .txt: Lista los archivos con extensión txt
ls nombre.
: Lista todos los archivos con el nombre especificado sin importar su extención.
ls nombre?: Lista los archivos que comiencen con determinado nombre y además al final de ese nombre un carácter más desconocido. Aumentando la cantidad de signos de interrogación, se agragan más caracteres al final del nombre de archivo.
ls [[:upper:]]* : Filtra todos los directorios que empiezan con mayúsculas y que terminen en una suscesión de caracteres. ls -d [[:upper:]]* : Se central en directorios.
ls -d [[:lower:]]: Idem anterior pero minúsculas.
ls [ai]
: Lista los archivos que comiencen con la letra a y con la letra i

Mostrar todas las coincidencias que terminen en .txt

ls *.txt

Mostrar todos los que digan datos y que tengan varios caracteres después

ls datos*

Mostrar todos los archivos que digan datos pero que solamente tengan un carácter al final

ls datos?

De acuerdo con la cantidad de caracteres después de la palabra datos que se quieran listar se añade al final un signo de interrogación

ls datos??
ls datos???

Mostrar todas las coincidencias que terminen en .html

ls *.html

Mostrar todas las coincidencias que inician con una mayúscula o una minúscula

ls [[:lower:]]*

Mostrar solo los directorios que inician con minúscula

ls -d [[:lower:]]*

Hacer clases con wildcards
Mostrar todos los archivos que inicien con una a o con una d y le siga cualquier carácter

ls [ad]*

antes de usar wildcards deberían leer este artículo, explica bien como usar una wildcard podría borrar todos los archivos y carpetas dentro de una sandbox, cambiar los permisos de todos los archivos en un servidor y otras técnicas de hacking.
https://www.defensecode.com/public/DefenseCode_Unix_WildCards_Gone_Wild.txt
si no les va tan bien con el inglés pueden ver mi resumen en github
https://github.com/koyomi-san/terminal/blob/main/wildcards.txt

Listar solo los archivos

ls *.*

Con respecto a este punto: ls -d [[:upper:]]* me di cuenta que sin la opción -d SÍ muestra el nivel de las carpetas, pero con la opción -d solo muestra archivos y directorios sin nivel. Adjunto imagen.

Mi exercise, with errors and all…

Mi alias j=“ls *.js”

Desconocía completamente esto de las wildcards y son muy muy funcionales la verdad

Para abrir una pestaña de google en Brave desde WSL:
alias google=“cmd.exe /C start “brave.exe” https://www.google.com.mx

Consulta que inicie por digitos

ls [[:digit:]]*

Bueno me siento contenta, jajajaj, luego de varios intentos lo logré, para resolver el reto relativo a averiguar el comando para buscar varios archivos javascript en mi equipo, use el siguiente comando:

-$ alias u= “ls - lahS *.js”

Como no tenía muchos archivos .js, cree varios con el comando touch, para realizar la busqueda.

/* clase 6 --> Wildcards */

WILDCARDS (ls):

    * --> Cualquier caracteres. (ejm: *.txt = readme.txt)

    ? --> Caracter individual. (ejm: datos? = datos1)

    -d --> Solo direcctorios.

    CLASES:
        [[:digit:]] --> Coincidencia con números.
        [[:upper:]] --> Coincidencia con mayusculas.
        [[:lower:]] --> COincidencia con minusculas.
  1. Determina cómo filtrar con dígitos.

    ls [[:digit:]]
    
  2. Crea un alias.
    Apenas voy iniciando con la terminal, así que:

Dejo unos ejercicios que hice XD por si quieren hacerlos:
Para crear los archivos:

touch index.html style.css login.css fun.js page1.html page2.html page3.html page4.html login.html fIle aRchivo dOcumento FILES Func.js fun1.js fun2.js fun3.js Doc

Ejercicios

  1. Listar todos los archivos que sean HTML
  2. Listar todos los archivos que tengan una mayúscula en el segundo carácter
  3. Listar todos los archivos page.html
  4. Listar el documento con todas las letras en mayúsculas
  5. Listar todos los archivos con un dígito
  6. Listar los archivos que empiecen con f mayúscula

La primera computadora a la que le instalé Linux (usé Kali) no le servía los botones físicos para aumentar o reducir el brillo del monitor. Así que investigué y encontré que este comando: xrandr --output [monitor-name] --brightness [brightness-level] (aunque no recuerdo bien, bien si era este mismo pero el chiste es que podía controlar eso desde una terminal). A lo que voy es que los alias son muy útiles pues con los que creé (bright y dark) podía ejecutar el comando de arriba más rápido y así controlar el brillo de mi compu:D

¿Qué son las wildcards?
Las wildcards son caracteres especiales.
¿Para qué sirven las wildcards?
En la shell estamos trabajando constantemente con archivos. Las wildcards son comodines de búsqueda, que nos ayuda a encontrar o trabajar con esos archivos de manera más rápida.

Por ejemplo, por medio de wildcards podemos crear patrones de búsqueda mucho más complejos.

Si un comando acepta nombres de archivos, podemos agregarle wildcards. Digamos por ejemplo que queremos remover todos los archivos que comienzan con “suel”, son del tipo .txt y tienen un carácter extra.
Tipos de wildcards
El comodín ? puede ir en lugar de cualquier carácter en particular, pero reeemplaza un único caracter por vez…

Pero tenemos otra opciones, por ejemplo:

La wildcard * (asterisco) iguala a cualquier número de caracteres.

Digamos por ejemplo que queremos mover todos los archivos que comienzan con la letra “a”. Para eso usamos el comodín * (asterisco) que entra en lugar de cualquier carácter, en cualquier cantidad.

Por ejemplo decir “a*” para el sistema significa que nos estamos refiriendo tanto al archivo “amor” como al archivo “avioneta” o al archivo “antílope”.

Por esto escribir a* es lo mismo que decir “todos los nombres que comienzan con la letra a.

Tomado de : https://apunteimpensado.com/wildcards-que-son-para-que-sirven/

WILDCARDS
Nos permiten encontrar patrones o realizar búsquedas más avanzadas.

  • ls *.txt -> Muestra todas los archivos con esta extensión.
  • ls datos* -> Muestra los archivos que tenga la misma raíz “datos” sin importar que tenga más caracteres.
  • ls datos? -> Muestra los archivos que tienen la raíz “datos” y un caracter adicional.
    -Al final coloco ? según el número de caracteres que quiero mostrar.
  • ls [[ : upper : ]]* -> Para buscar directorios que comiencen con mayúscula.
    • Si quiero filtrarlo ejemplo sólo para carpetas coloco -d luego de ls:
      ls -d [[ : upper : ]]*
  • ls [[ : lower: ]]* -> Para buscar directorios que comiencen con minúsculas.
  • ls [ ad ]*-> Para buscar coincidencias al inicio del nombre de los directorios. En este caso que comiencen con a o con d.
alias num="ls [[:digit:]]*"
num
_12  1245  4  78  9_
alias js="ls *.js"
 js
proyectoPrueba.js```

Siempre le había tenido miedo a la terminal, pero honestamente me está gustando 😀