Contenido y comparación de archivos

LinuxBeginner
Practicar Ahora

Introducción

¡Bienvenido a este laboratorio práctico sobre el trabajo con archivos en Linux! Si es la primera vez que usa Linux, no se preocupe. Le guiaremos cuidadosamente en cada paso. En este laboratorio aprenderá a ver el contenido de los archivos, consultar partes específicas de ellos y comparar archivos. Estas son habilidades fundamentales que le ayudarán a desplazarse por el sistema de archivos de Linux y comprenderlo.

Mostrar el contenido de un archivo

Primero, abra un terminal en el escritorio o cambie a la pestaña del terminal en el entorno del laboratorio.

Captura de la ventana del terminal

Cuando tenga abierto el terminal, verá un prompt, que normalmente termina con el símbolo $. Aquí es donde introducirá los comandos.

Ahora use el comando cat para mostrar el contenido de un archivo:

  1. En el terminal, escriba el siguiente comando y pulse Intro:
cat /tmp/hello

/tmp/hello es la ruta del archivo que queremos consultar. /tmp es un directorio del sistema y hello es el nombre del archivo que se encuentra en ese directorio.

  1. Después de pulsar Intro, debería ver el contenido del archivo:
Hi,
I am Labby!

Este es todo el contenido del archivo /tmp/hello. El comando cat lo ha mostrado en el terminal.

Mostrar el contenido de un archivo con números de línea

Ahora vuelva a usar el comando cat, pero esta vez añadirá números de línea a la salida.

  1. En el terminal, escriba el siguiente comando y pulse Intro:
cat -n /tmp/hello

-n es una opción o bandera. Indica a cat que numere todas las líneas de la salida.

  1. Ahora debería ver el contenido del archivo con los números de línea:
     1 Hi,
     2 I am Labby!

Esto resulta muy útil cuando trabaja con archivos más largos y necesita hacer referencia a líneas específicas.

Mostrar las primeras líneas de un archivo

A continuación, usará el comando head. Como su nombre indica, head permite consultar el principio o la «cabecera» de un archivo.

  1. En el terminal, escriba el siguiente comando y pulse Intro:
head -n1 /tmp/hello

La opción -n1 indica a head que muestre solo la primera línea. Puede cambiar 1 por cualquier número para mostrar esa cantidad de líneas.

  1. Debería ver esta salida:
Hi,

Esta es solo la primera línea del archivo. De forma predeterminada, sin la opción -n1, head mostraría las primeras 10 líneas del archivo.

Consultar los primeros bytes de un archivo

Ahora volverá a usar el comando head, pero esta vez para consultar una cantidad específica de bytes desde el principio de un archivo.

  1. En el terminal, escriba el siguiente comando y pulse Intro:
head -c1 /tmp/hello

La opción -c1 indica a head que muestre solo el primer byte (carácter) del archivo. Al igual que con -n, puede cambiar 1 por cualquier número para consultar esa cantidad de bytes.

  1. Debería ver esta salida:
H

Este es solo el primer carácter del archivo. En los archivos de texto, normalmente cada carácter ocupa un byte.

Mostrar las últimas líneas de un archivo

Ahora usará el comando tail. Como probablemente imagina, tail es lo contrario de head: muestra el final de un archivo.

  1. En el terminal, escriba el siguiente comando y pulse Intro:
tail -n1 /tmp/hello

Al igual que con head, la opción -n1 indica a tail que muestre una sola línea, en este caso, la última línea del archivo.

  1. Debería ver esta salida:
I am Labby!

Esta es la última línea del archivo. Sin la opción -n1, tail mostraría las últimas 10 líneas de forma predeterminada.

Consultar los últimos bytes de un archivo

Al igual que hizo con head, puede usar tail para mostrar una cantidad específica de bytes desde el final de un archivo.

  1. Primero, intente consultar el último byte. En el terminal, escriba el siguiente comando y pulse Intro:
tail -c1 /tmp/hello

Es posible que no vea ninguna salida. Esto se debe a que el último carácter probablemente sea un carácter de nueva línea, que no es visible.

  1. Ahora intente consultar los dos últimos bytes. Escriba el siguiente comando y pulse Intro:
tail -c2 /tmp/hello
  1. Ahora debería ver:
!

La opción -c2 indica a tail que muestre los 2 últimos bytes (caracteres) del archivo. En este caso, muestra el signo de exclamación, que es el último carácter visible del archivo.

Comparar archivos

Ahora aprenderá a usar el comando diff para comparar dos archivos y ver sus diferencias.

  1. Primero, asegúrese de estar en el directorio correcto. Escriba el siguiente comando y pulse Intro:
cd ~/project

Este comando cambia el directorio actual al directorio project de su directorio personal. El símbolo ~ es un acceso directo a su directorio personal.

  1. Ahora compare dos archivos. Escriba el siguiente comando y pulse Intro:
diff file1 file2

Este comando indica a diff que compare el contenido de file1 y file2.

  1. Debería ver una salida similar a esta:
1c1
< this is file1
---
> this is file2

Analicemos el significado de esta salida. El comando diff genera una salida que describe qué cambios son necesarios para que el primer archivo sea idéntico al segundo. No importa cuál de los archivos se creó o modificó primero; diff solo compara su contenido en el momento de ejecutar el comando.

  • 1c1: indica que la línea 1 del primer archivo debe cambiarse para coincidir con la línea 1 del segundo archivo.
  • < this is file1: el símbolo < indica una línea del primer archivo (file1).
  • ---: es un separador entre las líneas de file1 y file2.
  • > this is file2: el símbolo > indica una línea del segundo archivo (file2).

En términos sencillos, diff muestra que el contenido de la línea 1 es diferente en los dos archivos. Para que file1 coincida con file2, habría que reemplazar la línea «this is file1» por «this is file2».

Comparar directorios

Por último, use el comando diff para comparar directorios completos.

  1. En el terminal, escriba el siguiente comando y pulse Intro:
diff -r ~/Desktop ~/Code

La opción -r indica a diff que compare también los subdirectorios de forma recursiva. ~/Desktop y ~/Code son las rutas de los dos directorios que se comparan.

  1. Es posible que vea una salida similar a esta:
Only in /home/labex/Desktop: code.desktop
Only in /home/labex/Desktop: gedit.desktop
Only in /home/labex/Desktop: gvim.desktop
Only in /home/labex/Desktop: xfce4-terminal.desktop

Esta salida indica que el directorio Desktop contiene cuatro archivos que no se encuentran en el directorio Code.

Resumen

¡Enhorabuena! Ha completado el laboratorio sobre contenido y comparación de archivos. Recapitulemos lo aprendido:

  1. Usó cat para consultar todo el contenido de un archivo.
  2. Aprendió a usar cat -n para consultar el contenido de un archivo con números de línea.
  3. Usó head para consultar el principio de un archivo, tanto por líneas como por bytes.
  4. Usó tail para consultar el final de un archivo, tanto por líneas como por bytes.
  5. Aprendió a usar diff para comparar el contenido de archivos.
  6. Por último, usó diff -r para comparar directorios completos.

Estos comandos son herramientas fundamentales de Linux. A medida que siga trabajando con Linux, los usará con frecuencia para inspeccionar y comparar archivos y directorios.

Recuerde que, si alguna vez olvida cómo usar un comando, puede escribir man seguido del nombre del comando (por ejemplo, man cat) para consultar su página de manual. Allí encontrará información detallada sobre todas las opciones disponibles para cada comando.

Siga practicando con estos comandos en distintos archivos y directorios para familiarizarse con ellos. Cuanto más los use, más naturales le resultarán.