Cómo comprobar si un archivo está vacío en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo comprobar si un archivo está vacío en Linux utilizando diferentes herramientas de línea de comandos. Explorarás tres métodos comunes: utilizar el comando test -s para comprobar el tamaño del archivo, emplear el comando wc -c para contar el número de bytes en un archivo y, finalmente, examinar el contenido del archivo directamente con el comando cat. A través de ejemplos prácticos, entenderás cómo funciona cada método y cómo interpretar su salida para determinar si un archivo contiene datos.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicSystemCommandsGroup -.-> linux/test("Condition Testing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/wc("Text Counting") subgraph Lab Skills linux/echo -.-> lab-558711{{"Cómo comprobar si un archivo está vacío en Linux"}} linux/test -.-> lab-558711{{"Cómo comprobar si un archivo está vacío en Linux"}} linux/touch -.-> lab-558711{{"Cómo comprobar si un archivo está vacío en Linux"}} linux/cat -.-> lab-558711{{"Cómo comprobar si un archivo está vacío en Linux"}} linux/wc -.-> lab-558711{{"Cómo comprobar si un archivo está vacío en Linux"}} end

Comprobar el tamaño del archivo con test -s

En este paso, aprenderás cómo comprobar si un archivo existe y no está vacío utilizando el comando test con la opción -s. El comando test es un comando interno de la shell utilizado para evaluar expresiones condicionales. A menudo se utiliza en scripts de shell para tomar decisiones.

La opción -s con test comprueba si un archivo existe y tiene un tamaño mayor que cero (es decir, no está vacío).

Primero, creemos un archivo vacío y un archivo no vacío en tu directorio ~/project.

Abre tu terminal si no está abierta. Por defecto, deberías estar en el directorio ~/project.

Crea un archivo vacío llamado empty_file.txt:

touch empty_file.txt

Ahora, crea un archivo llamado non_empty_file.txt y agrega algún texto a él utilizando el comando echo y el operador de redirección >. El operador > redirige la salida de un comando a un archivo. Si el archivo no existe, se crea. Si existe, su contenido se sobrescribe.

echo "This file has content." > non_empty_file.txt

Ahora, usemos el comando test -s para comprobar estos archivos. El comando test no produce salida en caso de éxito. Indica éxito o fracaso mediante su estado de salida. Un estado de salida de 0 significa éxito (la condición es verdadera), y un estado de salida distinto de cero significa fracaso (la condición es falsa).

Podemos comprobar el estado de salida del comando anterior utilizando la variable especial $?.

Comprueba el archivo vacío:

test -s empty_file.txt
echo $?

Deberías ver la salida 1, lo que indica que la condición (el archivo existe y no está vacío) es falsa para empty_file.txt.

Ahora, comprueba el archivo no vacío:

test -s non_empty_file.txt
echo $?

Deberías ver la salida 0, lo que indica que la condición es verdadera para non_empty_file.txt.

Esta es una forma fundamental de comprobar las propiedades de un archivo en la programación de scripts de shell. Puedes utilizar esto para asegurarte de que un archivo tenga contenido antes de intentar procesarlo.

Haz clic en Continuar para continuar.

Contar los bytes de un archivo utilizando wc -c

En este paso, aprenderás cómo contar el número de bytes en un archivo utilizando el comando wc con la opción -c. El comando wc es una utilidad que imprime el recuento de líneas nuevas, palabras y bytes para cada archivo.

La opción -c le indica a wc que solo cuente los bytes.

Utilicemos los archivos que creamos en el paso anterior: empty_file.txt y non_empty_file.txt.

Primero, contemos los bytes en empty_file.txt. Asegúrate de estar en el directorio ~/project.

wc -c empty_file.txt

Deberías ver una salida similar a esta:

0 empty_file.txt

Esto muestra que empty_file.txt tiene 0 bytes, lo cual tiene sentido porque es un archivo vacío.

Ahora, contemos los bytes en non_empty_file.txt:

wc -c non_empty_file.txt

Deberías ver una salida similar a esta:

23 non_empty_file.txt

El número 23 representa el número de bytes en el archivo "This file has content." seguido de un carácter de nueva línea agregado por echo. Cada carácter normalmente ocupa un byte.

El comando wc es muy útil para obtener rápidamente información sobre el tamaño de los archivos. También puedes usar wc sin opciones para obtener el recuento de líneas, palabras y bytes. Intenta ejecutar wc non_empty_file.txt para ver la diferencia.

Haz clic en Continuar para pasar al siguiente paso.

Ver el contenido de un archivo con el comando cat

En este paso, aprenderás cómo ver el contenido de un archivo utilizando el comando cat. El comando cat es la abreviatura de "concatenate" (concatenar) y se utiliza principalmente para mostrar el contenido de archivos.

Utilicemos los archivos que creamos en los pasos anteriores: empty_file.txt y non_empty_file.txt. Asegúrate de estar en el directorio ~/project.

Primero, intenta ver el contenido de empty_file.txt:

cat empty_file.txt

Dado que empty_file.txt está vacío, el comando cat no mostrará ninguna salida.

Ahora, ve el contenido de non_empty_file.txt:

cat non_empty_file.txt

Deberías ver el contenido que agregamos en el paso anterior:

This file has content.

El comando cat es una forma simple y rápida de mostrar todo el contenido de un archivo directamente en tu terminal. Ten precaución al usar cat en archivos muy grandes, ya que imprimirá todo en tu pantalla, lo que puede ser abrumador. Para archivos grandes, comandos como less o more son más adecuados, ya que te permiten ver el contenido página por página.

También puedes usar cat para combinar el contenido de múltiples archivos y mostrarlo. Por ejemplo, si tuvieras file1.txt y file2.txt, cat file1.txt file2.txt mostraría el contenido de file1.txt seguido del contenido de file2.txt.

Haz clic en Continuar para completar este laboratorio.

Resumen

En este laboratorio, aprendiste cómo comprobar si un archivo está vacío en Linux utilizando el comando test -s. Este comando comprueba si un archivo existe y tiene un tamaño mayor que cero, devolviendo un estado de salida de 0 para verdadero (no vacío) y 1 para falso (vacío o no existente). Practicaste la creación de archivos vacíos y no vacíos y verificaste su estado utilizando test -s y comprobaste el estado de salida con $?.