¿Qué son los metacaracteres de Linux? Todo lo que necesitas saber

La característica más poderosa del shell Bash de Linux es su capacidad para evitar archivos y redirigir su entrada y salida de manera eficiente. Linux usa caracteres especiales o símbolos conocidos como metacaracteres que agregan un significado especial a un comando de shell con respecto a la búsqueda de archivos y la conexión de comandos.

Los metacaracteres son útiles para enumerar, eliminar y copiar archivos en Linux. Sin embargo, la función de cada metacarácter difiere según el comando con el que lo esté utilizando.

Este artículo proporciona una guía detallada sobre diferentes tipos de metacaracteres en Linux. Por último, explicamos cómo estos caracteres especiales ayudan a conectar y expandir comandos.

Metacaracteres de coincidencia de archivos

El shell de Linux le permite guardar pulsaciones de teclas mientras escribe comandos mediante el uso de metacaracteres entre archivos o nombres de directorios. Estos caracteres lo ayudan a referirse a un grupo de archivos o un directorio para enumerar, mover o realizar otras actividades.

Estos son algunos metacaracteres de coincidencia de archivos que el shell de Linux puede interpretar:

  • * (Asterisco) : Coincide con una o varias apariciones de un carácter
  • ? (Signo de interrogación) : Coincide con un solo carácter o una ocurrencia de patrón
  • [ ] (Corchetes) : Coincide con cualquier número, símbolo o alfabeto separado por guiones especificado dentro de los corchetes

Una forma ideal de practicar metacaracteres en Linux es creando una nueva carpeta vacía dentro del /tmp directorio.

                      
                        sudo mkdir /tmp/meta
                      
                    

Ahora navegue a la /tmp/meta directorio usando el comando cd y cree nuevos archivos vacíos usando touch, de la siguiente manera:

                      
                        touch apple.txt cider.sh vinegar.php cat.txt lemon.txt juice.sh catfish.sh 
                      
                    

Use los siguientes comandos para probar el “ * ” metacarácter y mostrar los resultados:

                      
                        ls c*
                        
Output:
catfish.sh cat.txt cider.sh
                      
                        ls c*h
                        
Output:
catfish.sh cider.sh
                      
                        ls *r*
                        
Output:
cider.sh vinegar.php
                      
                        sudo rm *p*
                      
                    

El comando antes mencionado eliminará todos los archivos que contengan la letra “p” en su nombre. Puede verificar el cambio usando el comando ls de la siguiente manera:

                      
                        ls
                        
Output:
catfish.sh cat.txt cider.sh juice.sh lemon.txt

Estos son algunos ejemplos de “ ? ” metacarácter para la coincidencia de patrones:

                      
                        ls a?*
                        
Output:
apple.txt
                      
                        ls c?t*
                        
Output:
catfish.sh cat.txt

El último comando coincide con cualquier archivo que comience con C y tiene t como la tercera letra (cat.txt, catfish.sh, etc.).

Ahora usa el [av]* opción con el comando ls para enumerar todos los archivos que comienzan con a o v , como sigue:

                      
                        ls [av]*
                        
Output:
apple.txt vinegar.sh

Puede modificar el comando anterior para enumerar solo los archivos que terminan con la letra t :

                      
                        ls [ac]*[t]
                        
Output:
apple.txt catfish.txt cat.txt

De manera similar, puede usar las letras separadas por guiones para definir rangos y enumerar archivos de la siguiente manera:

                      
                        ls [a-j]*
                        
Output:
apple.txt catfish.sh cat.txt cider.sh juice.sh

Metacaracteres de redirección de archivos

Para una mejor comprensión de la redirección en Bash, cada proceso en Linux tiene descriptores de archivo, conocidos como entrada estándar ( Entrada estándar/0 ), salida estándar ( salida estándar/1 ), y error estándar ( estándar/2 ). Determinan el origen de la entrada del comando y deciden dónde enviar la salida y los mensajes de error.

Los metacaracteres de redirección lo ayudan a modificar estas acciones al redirigir el flujo de E/S de contenido. Generalmente, el shell de Linux lee la entrada del comando desde el teclado y escribe la salida en la pantalla. La redirección de entrada permite que el comando lea el contenido de un archivo en lugar de un teclado, mientras que la redirección de salida guarda la salida del comando en un archivo.

En otras palabras, los metacaracteres de redirección de archivos de Linux le permiten redirigir el contenido a ( > ) y de ( < ) Los archivos. Los tres metacaracteres de redirección principales son:

  1. < : dirige el contenido del archivo al comando. Por ejemplo, la salida del comando para menos .bashrc es lo mismo que menos < .bashrc .
  2. > : Dirige la salida del comando al archivo. El comando ls /etc > listas.txt guarda la salida en el archivo Lists.txt.
  3. >> : Agrega la salida del comando al contenido del archivo.

wc significa conteo de palabras y puede usarlo para mostrar la diferencia entre el archivo antes y después de agregarlo con la salida.

Metacarácter de expansión Brace

El metacarácter de expansión de llaves le permite expandir los caracteres a través de directorios, nombres de archivos u otros argumentos de la línea de comandos. Por ejemplo, puede crear un nuevo directorio abrazadera dentro de /tmp carpeta y cree un conjunto de archivos usando el comando táctil de la siguiente manera:

                      
                        sudo mkdir /tmp/brace; cd /tmp/brace
                        
touch test{1,2,3,4,5}

Ahora, puede verificar si touch creó los archivos o no usando el comando ls.

                      
                        ls
                        
Output:
test1 test2 test3 test4 test5

Puede especificar varias listas para generar nombres de archivos en función de las combinaciones de los elementos de la lista. Para example:

                      
                        touch {apple,cider,vinegar}.{fruit,liquid,sour}
                        
touch {a,b,c}.{1,2,3}

El último comando creará los siguientes archivos en el directorio actual:

El primer comando utiliza dos conjuntos de llaves para asociar los nombres de archivo de cada conjunto con el otro. También puede escribir el último comando como toque {a..c}. {1..3} para especificar el rango entre a y c y 1 y 3.

Además de crear archivos, también puede usar la expansión de llaves para eliminar o copiar archivos a otras ubicaciones.

Algunos otros metacaracteres de Linux

Aquí hay una tabla de algunos metacaracteres conocidos para la conexión y expansión de comandos con sus nombres, descripción y ejemplos para practicar:

Nombre Descripción Ejemplo
tubería (|) Conecta la salida del comando como una entrada al otro comando. gato /etc/contraseña | raíz de grep
Punto y coma (;) Permite la ejecución de comandos secuenciales, uno tras otro. cd / etc ; ls-la; chmod +x /tmp/script.php
Y comercial (&) Ejecuta los procesos o comandos en segundo plano. encontrar / -perm -u=s -tipo f &
dólar ($) Expande la expresión aritmética y la pasa al shell echo “los archivos totales en este directorio son: $(ls | wc -l)”
Redirección nula (2>) Dirige los mensajes de error estándar al archivo /dev/null su_comando 2>/dev/null
circunflejo (^) Coincide con cualquier patrón que comience con la expresión seguida de ^ cd /etc/ssh; ls | grep^s

Guarde sus pulsaciones de teclas con metacaracteres de Linux

Los metacaracteres de Linux también se conocen como comodines que agregan un significado especial a los comandos y controlan su comportamiento. Los metacaracteres optimizan el rendimiento laboral de un usuario en un entorno productivo mientras trabaja con archivos/directorios y conecta/expande los comandos de shell de Linux.

Además, los metacaracteres también son los componentes básicos de las expresiones regulares. Además, aprender sobre los metacaracteres y su uso es una habilidad importante si desea convertirse en un usuario pro-Linux.

Related Posts