Los comandos en Linux tienen una entrada estándar (stdin 0) y dos salidas estándar: una para la salida normal del comando (stdout 1) y otra para la salida de los mensajes de error (stderr 2), por defecto la entrada como las salidas se muestran en la terminal del usuario, sin embargo al usar un operador de redirección podemos lograr que en lugar de usar la terminal se utilice un fichero.
Nuestros ejemplos usarán la estructura de archivos del proyecto EDcampBogota2017.
Por ejemplo si usamos el comando ls
para listar los ficheros del directorio app, la salida en la terminal será:
pero si queremos que esta salida se almacene en el fichero directorios\_app
, en su lugar usaremos el operador de redirección \>
que permitirá almacenar en el archivo el resultado del comando ls
, si el fichero no existe este comando creará el fichero y si existe se sobrescribirá su contenido.
$ ls > directorios_app
Si mostramos el contenido del fichero directorios\_app
con el comando cat
, obtendremos la lista de directorios que se encuentran en la carpeta app
Si nuestra intención no es sobrescribir el contenido del fichero directorios\_app
sino agregar la nueva información al final del archivo, entonces usaremos el operador de redirección >>
$ ls >> directorios_app
Ahora veremos un ejemplo para modificar la entrada estándar (stdin 0), por ejemplo si queremos utilizar el comando grep para encontrar las coincidencias de la palabra Models
que se encuentre en los ficheros de los directorios que capturamos en el archivo directorios\_app
usaremos el operador de redirección <
:
$ grep -rn "Models" < directorios_app
Este comando generará la siguiente salida en la terminal:
Espero puedas poner en práctica esta información para mejorar tus habilidades con la terminal de Linux, ¡Nos vemos pronto!