Búsqueda de sitios web

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


Ocasionalmente, mientras trabaja con archivos en una terminal de Linux, es posible que desee borrar el contenido de un archivo sin necesidad de abrirlo utilizando 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 de un archivo con la ayuda de algunos comandos útiles.

Precaución: antes de proceder a analizar las distintas formas, tenga en cuenta que debido a que en Linux todo es un archivo, siempre debe asegurarse de que los archivos que está vaciando no sean archivos importantes del usuario o del sistema. . 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 formas de borrar el contenido del archivo desde la línea de comando.

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

1. Vaciar el contenido del archivo redirigiendo a nulo

La forma más fácil de vaciar o dejar en blanco el contenido de un archivo usando Shell redirige null (objeto inexistente) al archivo de la siguiente manera:

> access.log

2. Vaciar el archivo usando la redirección de comando "verdadera"

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

Otro método es redirigir la salida del comando integrado : o true al archivo de esta manera:

: > access.log
OR 
true > access.log

3. Vaciar archivo 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 bien como un archivo vacío adecuado para flujos de entrada. Normalmente esto se hace mediante un mecanismo de redirección.

Y el archivo de dispositivo /dev/null es, por lo tanto, un archivo especial que cancela (elimina) cualquier entrada que se le envíe 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 borrar el contenido de un archivo como se muestra.

cp /dev/null access.log

En el siguiente comando dd, 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í, puedes 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: Debes tener en cuenta que una cadena vacía no es lo mismo que nula. Una cadena ya es un objeto por mucho que esté vacía, mientras que nulo simplemente significa la inexistencia de un objeto.

Por esta razón, cuando redirige el comando echo anterior al archivo y ve el contenido del archivo usando el comando cat, se imprime una línea vacía (cadena vacía).

Para enviar una salida nula al archivo, use el indicador -n que le indica 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 múltiples métodos para borrar o vaciar el contenido de un archivo utilizando utilidades de línea de comandos simples y mecanismos de redirección de shell.

Probablemente estas no sean las únicas formas prácticas disponibles de 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.