Expansiones de caparazón
Mientras se trabaja en un caparazón, los conjuntos o rangos de información a menudo se repiten. La expansión de shell ayuda a generar una gran cantidad de tokens de shell utilizando sintaxis compactas. La expansión se realiza en la línea de comando después de que el comando se divida en tokens. De las muchas expansiones disponibles, el nombre de la ruta, el nombre del archivo y las expansiones de llaves se explican a continuación.
Expansión de nombre de ruta
La expansión del nombre de ruta simplifica los cambios de ubicación dentro de la jerarquía de directorios. La expansión del nombre de la ruta incluye:
– La tilde (~) carácter, que representa el nombre de ruta absoluto del directorio de inicio del usuario actual
– El carácter de tilde (~) con un nombre de usuario, que representa el directorio de inicio del usuario especificado
– El guión ( -) carácter, que representa el directorio de trabajo anterior
Considere los siguientes ejemplos para cada uno de los caracteres de expansión:
1. Cambie los directorios a dir1 usando el carácter de tilde (~).
$ cd ~/dir1 $ pwd /home/user/dir1/
2. Cambie de directorio al directorio de inicio del usuario usando el carácter de tilde (~) seguido de un nombre de usuario.
$ cd ~user $ pwd /home/user
3. Cambie entre los directorios user y tmp utilizando el carácter de expansión –.
$ cd $ pwd /home/user
$ cd /tmp $ pwd /tmp
$ cd - /export/home/user1 $ cd - /tmp
Expansión de nombre de archivo
Las expansiones de nombre de archivo son:
- El carácter asterisco (*)
- El signo de interrogación (?)
- Los caracteres de corchetes ([])
1. Asterisco (*) Carácter
El carácter de expansión de asterisco (*) también se denomina carácter comodín y representa cero o más caracteres, excepto el punto inicial (.) de un archivo oculto. Por ejemplo, enumere todos los archivos y directorios que comiencen con la letra f seguida de cero o más caracteres.
$ ls f* file.1 file.2 file.3 file4
Otro ejemplo es listar todos los archivos y directorios que terminan con el número 3, precedido por cero o más caracteres.
$ ls *3 file.3 file3
2. Signo de interrogación (?) Carácter
El carácter de signo de interrogación (?) también se denomina carácter comodín y representa cualquier carácter individual excepto el punto inicial (.) de un archivo oculto. Por ejemplo, enumere todos los archivos y directorios que comienzan con la cadena dir seguidos de otro carácter.
$ ls dir? dir1: coffees fruit trees dir2: beans notes recipes
Si ningún archivo coincide con una entrada que usa el signo de interrogación (?), aparece un mensaje de error.
$ ls z? z?: No such file or directory
3. Corchetes ([]) Caracteres
El corchete ([] ) los caracteres representan un conjunto o rango de caracteres para una sola posición de carácter.
– Un conjunto de caracteres es cualquier cantidad de caracteres específicos, por ejemplo, [acb]. Los caracteres de un conjunto no necesariamente tienen que estar en ningún orden. Por ejemplo, [abc] es lo mismo que [cab].
– Un rango de caracteres es una serie de caracteres ordenados.
- Un rango enumera el primer carácter seguido de un guión (-) y luego el último carácter, por ejemplo, [a–z] o [0–9].
- Al especificar un rango, organice los caracteres en el orden en que desea que aparezcan en la salida.
- Por ejemplo, utilice [A–Z] o [a–z] para buscar cualquier carácter alfabético en mayúsculas o minúsculas, respectivamente.
Por ejemplo, enumere todos los archivos y directorios que comienzan con las letras de la a a la f.
$ ls [a-f]* brands dante_1 file.1 file2 file4 celery feathers file1 file.3 fruit dante feathers_6 file.2 file3 fruit2
Por ejemplo, enumere todos los archivos y directorios que comienzan con las letras f o p.
$ ls [fp]* perm file.1 file.2 file.3 file4 fruit2 feathers_6 file1 file2 file3 fruit
La expansión Brace
La expansión de llaves {} es un mecanismo mediante el cual se pueden generar cadenas arbitrarias. Los patrones que se expandirán con llaves toman la forma de un preámbulo opcional, seguido de una serie de cadenas separadas por comas o una expresión de secuencia entre un par de llaves, seguida de una posdata opcional. El preámbulo "a" se antepone a cada cadena contenida entre las llaves, y la posdata "e" se agrega a cada cadena resultante, expandiéndose de izquierda a derecha.
$ echo a{d,c,b}e ade ace abe