5 formas de vaciar o eliminar el contenido de un archivo grande en Linux


Ocasionalmente, al tratar con archivos en la terminal de Linux, es posible que desee borrar el contenido de un archivo sin tener que abrirlo necesariamente con ningún editor de línea de comandos de Linux. ¿Cómo se puede lograr esto? En este artículo, veremos varias formas diferentes de vaciar el contenido del archivo con la ayuda de algunos comandos útiles.

Precaución: Antes de proceder a ver las distintas formas, tenga en cuenta que, dado que en Linux todo es un archivo, siempre debe asegurarse de que los archivos que está vaciando no sean archivos importantes del sistema o del usuario. Borrar el contenido de un sistema crítico o un archivo de configuración podría provocar un error o falla fatal en la aplicación/sistema.

Dicho esto, a continuación se muestran los medios para borrar el contenido del archivo desde la línea de comando.

Importante: A los efectos de este artículo, hemos utilizado el archivo access.log en los siguientes ejemplos.

1. Vaciar el contenido del archivo redireccionando a nulo

Una forma más fácil de vaciar o en blanco el contenido de un archivo usando shell redirecciona null (objeto inexistente) al archivo como se muestra a continuación:

# > access.log

2. Vaciar archivo usando redireccionamiento de comando "verdadero"

Aquí usaremos un símbolo : es un comando integrado de shell que es esencialmente equivalente al comando true y se puede usar como no-op (sin operación) .

Otro método es redirigir la salida del comando incorporado : o true al archivo así:

# : > access.log
OR 
# true > access.log

3. Archivo vacío usando las utilidades cat/cp/dd con/dev/null

En Linux, el dispositivo null se utiliza básicamente para descartar flujos de salida no deseados de un proceso, o como un archivo vacío adecuado para flujos de entrada. Esto normalmente se hace mediante un mecanismo de redireccionamiento.

Y el archivo de dispositivo /dev/null es, por lo tanto, un archivo especial que elimina (elimina) cualquier entrada enviada o su salida es la misma que la de un archivo vacío.

Además, puede vaciar el contenido de un archivo redirigiendo la salida de /dev/null a él (archivo) como entrada usando el comando cat:

# cat /dev/null > access.log

A continuación, usaremos el comando cp para dejar en blanco el contenido de un archivo como se muestra.

# cp /dev/null access.log

En el siguiente comando, if significa el archivo de entrada y of se refiere al archivo de salida.

# dd if=/dev/null of=access.log

4. Vaciar archivo usando el comando echo

Aquí, puede usar un comando echo con una cadena vacía y redirigirlo al archivo de la siguiente manera:

# echo "" > access.log
OR
# echo > access.log

Nota: debe tener en cuenta que una cadena vacía no es lo mismo que un valor nulo. Una cadena ya es un objeto por mucho que esté vacía, mientras que nulo simplemente significa que no existe un objeto.

Por esta razón, cuando redirige el comando out of the cat, se imprime una línea vacía (cadena vacía).

Para enviar una salida nula al archivo, use la bandera -n que le dice a echo que no genere la nueva línea final que conduce a la línea vacía producida en el comando anterior.

# echo -n "" > access.log

5. Vaciar archivo usando el comando truncar

El comando truncar ayuda a reducir o ampliar el tamaño de un archivo a un tamaño definido.

Puede emplearlo con la opción -s que especifica el tamaño del archivo. Para vaciar el contenido de un archivo, use un tamaño de 0 (cero) como en el siguiente comando:

# truncate -s 0 access.log

Eso es todo por ahora, en este artículo hemos cubierto varios métodos para borrar o vaciar el contenido del archivo usando utilidades de línea de comandos simples y un mecanismo de redirección de shell.

Estas no son probablemente las únicas formas prácticas disponibles para hacer esto, por lo que también puede informarnos sobre cualquier otro método que no se mencione en esta guía a través de la sección de comentarios a continuación.