Muestra el contenido de un archivo con cat, head y tail, y luego captura una salida en un archivo.
Abrir esta lección en KodokonNo siempre necesitas abrir un editor solo para echarle un vistazo a un archivo. El comando cat muestra su contenido directamente en la terminal. Su nombre viene de concatenate, "unir uno detrás de otro", porque también sabe mostrar varios archivos seguidos. Es la herramienta ideal para archivos pequeños: unas pocas decenas de líneas como mucho.
yoann@laptop:~/my-project$ cat shopping.txt
Bread
Cheese
Tomatoes
yoann@laptop:~/my-project$ cat shopping.txt notes.txt
Bread
Cheese
Tomatoes
Do not forget the Saturday marketEn un archivo de diez mil líneas, cat hace desfilar la pantalla durante diez segundos y solo llegas a ver el final. Existen dos comandos más precisos: head muestra el principio de un archivo y tail muestra el final. Ambos muestran 10 líneas por defecto, y la opción -n te permite elegir cuántas. tail tiene un superpoder con la opción -f (follow): se queda abierto y muestra las líneas nuevas a medida que van llegando. Así es como se vigila en directo el registro de un servidor.
head server.log
head -n 5 server.log
tail -n 20 server.log
tail -f server.logPor defecto, un comando escribe su resultado en la pantalla. Pero puedes desviar ese resultado hacia un archivo, igual que desviarías el agua de una manguera hacia un cubo. Esto es la redirección, y se escribe con un signo de mayor que. Un solo signo > envía la salida a un archivo, sobrescribiendo lo que contuviera. Un doble signo >> añade al final sin borrar nada. Esa diferencia de un solo carácter lo cambia todo. Para comprobar lo que acabas de producir sin mostrarlo entero, el comando wc (word count) con la opción -l (lines) cuenta el número de líneas de un archivo.
yoann@laptop:~/my-project$ echo "My first line" > notes.txt
yoann@laptop:~/my-project$ echo "My second line" >> notes.txt
yoann@laptop:~/my-project$ cat notes.txt
My first line
My second line
yoann@laptop:~/my-project$ ls -l > inventory.txt
yoann@laptop:~/my-project$ wc -l inventory.txt
7 inventory.txtcat?> y >>?> añade al final, >> sobrescribe el archivo> sobrescribe el archivo, >> añade al finalserver.log?