Globbing: qué es y cómo usarlo en Linux
Globbing es una forma de expandir caracteres comodín en un nombre de archivo no específico en un conjunto de nombres de archivo específicos. Las shells utilizan globbing todo el tiempo. Por ejemplo:
$ ls foo*
foo1 foo2
Cuando introduces lo anterior, estás utilizando un glob: foo*. Lo que la shell está haciendo, sin embargo, es interpretar ese carácter comodín (*) y luego pasar los archivos reales al comando ls; así que en este caso, el comando que realmente se está utilizando es ls foo1 foo2.
Algunos comodines estándar que se utilizan con frecuencia incluyen:
- El carácter asterisco (*) para cero o más caracteres
- El carácter de interrogación (?) para cualquier carácter individual
- El especificador [123], que indica cualquiera de los caracteres 1, 2 o 3
- El especificador [0-9], que indica cualquier número entre 0 y 9 (o [a-z] para cualquier letra entre a y z)
También puedes usar rangos con nombres, como:
- [::alpha::] para cualquier letra
- [::alnum::] para cualquier letra o número
- [::lower::] para cualquier carácter en minúsculas
Cuando se trata de globbing, zsh es una de las shells más potentes con algunos caracteres comodín muy interesantes que se pueden utilizar. Por ejemplo, puedes usar calificadores de glob, que son caracteres con un significado especial. Si quisieras listar todos los archivos de enlace simbólico en el directorio actual, usarías:
$ ls *(@)
Algunos otros calificadores de glob de zsh incluyen una barra diagonal (/) para directorios y un punto (.) para archivos normales; la página de manual zshexpn tiene una lista completa. Si no hay coincidencias, zsh devolverá un error; si no hay nada que pasar al programa ls (u otro programa), el programa ni siquiera será llamado por zsh.
Cómo utilizar Isearch para buscar archivos de texto en LinuxHay otros patrones útiles, como el patrón (**/). Lo que hace esto es indicarle a zsh que coincida con cualquier número de directorios a cualquier profundidad, incluido el directorio actual. Para encontrar todos los archivos (*.sh) y (*.py) en el directorio actual y subdirectorios en una lista adecuada para ser analizada (por ejemplo, tal vez en un script), usarías:
$ ls -1 **/*.(sh|py)
Por último, para habilitar globbing extendido todo el tiempo, agrega esto a ~/.zshrc:
setopt extended_glob
Si decides utilizar globbing extendido, ten en cuenta los caracteres especiales en los nombres de archivo y la necesidad de poner comillas en ellos. Por ejemplo, si quieres copiar archivos desde un sitio remoto utilizando scp, no quieres que zsh expanda los comodines localmente; quieres que ese comodín se pase a scp para que coincida con los archivos en el extremo remoto, así que en lugar de:
$ scp hades:~/tmp/* .
zsh: no se encontraron coincidencias: hades:~/tmp/*
Necesitarías usar:
$ scp "hades:~/tmp/*"
Entregado cada martes, el Linux NetNote gratuito de Newsmatic proporciona consejos, artículos y otros recursos para ayudarte a perfeccionar tus habilidades de Linux. ¡Regístrate automáticamente hoy mismo!
Guía para entender y gestionar los permisos de archivos y directorios en LinuxEn Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Código abierto, allí encontraras muchos artículos similares a Globbing: qué es y cómo usarlo en Linux , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados