Las expansiones en el shell se realizan en la línea de comandos después de que se haya dividido en tokens. Hay siete tipos de expansión realizados:
- expansión de llaves
- expansión de tilde
- expansión de parámetros y variables
- sustitución de comandos
- expansión aritmética
- división de palabras
- expansión de nombre de archivo
En este caso vamos a ver algunos casos de uso para la expansión de llaves.
Expansión de llaves en el shell
La expansión de llaves es un mecanismo mediante el cual se pueden generar cadenas arbitrarias.
Los patrones a expandir toman la forma de:
- Un preámbulo que es opcional
- Una serie de cadenas separadas por comas, o una expresión de secuencia entre un par de llaves
- Una posdata opcional.
Es decir, un antes que es opcional, la serie de valores a expandir, y un después que también es opcional
1 2 |
$ echo a{d,c,b}e ade ace abe |
En este ejemplo, el preámbulo o antes es a, los valores a expandir son d, c y b y la postdata o después es e.
Usos de expasión de llaves para manejo de archivos
Expasión de llaves en el shell para mover archivos
Para mover el archivo jail.conf y guardarlo con el nombre jail.local ejecutaríamos un comando como este:
1 |
mv /etc/fail2ban/jail.conf /etc/fail2ban/jail.local |
Pero haciendo uso de la expansión de llaves, podemos hacerlo de la siguiente manera
1 |
mv /etc/fail2ban/jail.{conf,local} |
Expasión de llaves en el shell para copiar archivos
Para copiar un archivo y guardar la copia con la extension .bak
1 |
cp /etc/un/muy/largo/path{,.bak} |
Para copiar un archivo reemplazando una parte del path
1 |
cp /etc/un/muy/{largo,corto}/path |
Expasión de llaves en el shell para crear directorios
Crear varios directorios al mismo tiempo
1 |
mkdir /temp/{uno,dos,tres} |
¿Te gustó este artículo?
Si te gustó este artículo, te ha servido o aprendiste algo nuevo; compártelo en tus redes sociales o invítame un cafe.