De vez en cuando, mientras se trata de archivos en la terminal de Linux, es posible que desee borrar el contenido de un archivo sin necesariamente abrirlo usando cualquier editor de línea de comandos de Linux. ¿Cómo se puede lograr esto? En este artículo, vamos a ir a través de varias maneras diferentes de vaciar el contenido del archivo con la ayuda de algunos comandos útiles.
Precaución: Antes de proceder a ver las distintas formas, ten en cuenta que como en Linux todo es un archivo, siempre debes asegurarte de que el o los archivos que estás vaciando no son archivos importantes del usuario o del sistema. Vaciar el contenido de un archivo crítico del sistema o de configuración podría llevar a un error fatal de la aplicación/sistema o a un fallo.
Dicho esto, a continuación se muestran los medios para vaciar el contenido de los archivos desde la línea de comandos.
Importante: Para el propósito de este artículo, hemos utilizado el archivo access.log
en los siguientes ejemplos.
Vaciar el contenido de un archivo redirigiéndolo a Null
Una de las formas más sencillas de vaciar o dejar en blanco el contenido de un archivo utilizando la redirección del shell null
(objeto inexistente) al archivo como se indica a continuación:
# > access.log
Vacío de archivo usando redirección de comando ‘true’
Aquí usaremos un símbolo :
es un comando incorporado en el shell que es equivalente en esencia al comando true
y puede ser usado como un no-op (no operación).
Otro método es redirigir la salida del comando incorporado :
o true
al archivo así:
# : > access.logOR # true > access.log
Empty File Using cat/cp/dd utilities with /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. Esto se hace normalmente por el mecanismo de redirección.
Y el archivo de dispositivo /dev/null
es por lo tanto un archivo especial que escribe (elimina) cualquier entrada enviada a él o su salida es igual a la de un archivo vacío.
Además, se puede vaciar el contenido de un fichero redirigiendo la salida de /dev/null
hacia él (fichero) como entrada utilizando el comando cat:
# cat /dev/null > access.log
A continuación, utilizaremos el comando cp para vaciar el contenido de un fichero 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
Fichero vacío utilizando el comando echo
Aquí, puede utilizar un comando echo con una cadena vacía y redirigirla al archivo de la siguiente manera:
# echo "" > access.logOR# echo > access.log
Nota: Debes tener en cuenta que una cadena vacía no es lo mismo que null. Una cadena ya es un objeto tanto como puede estar vacía mientras que null simplemente significa la no existencia de un objeto.
Por esta razón, cuando usted redirige la salida del 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 la bandera -n
que le dice a echo que no emita la nueva línea final que lleva a la línea vacía producida en el comando anterior.
# echo -n "" > access.log
Empty File Using truncate Command
El comando truncate ayuda a reducir o extender 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, utilice 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 simples utilidades de línea de comandos y el mecanismo de redirección del shell.
Estas no son probablemente las únicas formas prácticas disponibles de hacer esto, por lo que también puede decirnos sobre cualquier otro método no mencionado en esta guía a través de la sección de comentarios a continuación.