GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo truncar archivos (vacíos) en Linux

En algunas situaciones, es posible que desee truncar (vaciar) un archivo existente a una longitud cero. En palabras simples, truncar un archivo significa eliminar el contenido del archivo sin eliminarlo.

Truncar un archivo es mucho más rápido y fácil que eliminarlo, volver a crearlo y establecer los permisos y la propiedad correctos. Además, si un proceso abre el archivo, eliminarlo puede causar que el programa que lo usa no funcione correctamente.

Este tutorial explica cómo truncar archivos a tamaño cero en sistemas Linux usando la redirección de shell y truncate comando.

Redirección de shell #

El método más fácil y más usado para truncar archivos es usar el > operador de redirección de shell.

El formato general para truncar archivos usando la redirección es:

: > filename

Analicemos el comando:

  • El : dos puntos significa true y no produce resultados.
  • El operador de redirección > redirigir la salida del comando anterior al archivo dado.
  • filename , el archivo que desea truncar.

Si el archivo existe, se truncará a cero. De lo contrario, se creará el archivo.

En lugar de : también puede usar otro comando que no produzca ningún resultado.

Aquí hay un ejemplo del uso del cat comando para generar el contenido de /dev/null dispositivo, que devuelve solo un carácter de fin de archivo:

cat /dev/null > filename

Otro comando que se puede usar es echo . El -n opción le dice a echo no añadir una nueva línea:

echo -n > filename

En la mayoría de los shells modernos, como Bash o Zsh, puede omitir el comando antes del símbolo de redirección y usar:

> filename

Para poder truncar un archivo, debe tener permisos de escritura en el archivo. Por lo general, usaría sudo para esto, pero los privilegios de raíz elevados no se aplican a la redirección. Aquí hay un ejemplo:

sudo : > /var/log/syslog
bash: /var/log/syslog: Permission denied

Hay varias soluciones que permiten redirigir con sudo . La primera opción puede ejecutar un nuevo shell con sudo y ejecutar un comando dentro de ese shell usando -c bandera:

sudo sh -c '> filename'

Otra opción es canalizar la salida al tee comando, eleva el tee privilegios con sudo y escribe la salida vacía en un archivo dado:

: | sudo tee filename

truncate Comando #

truncate es una utilidad de línea de comandos que le permite reducir o ampliar el tamaño de un archivo a un tamaño determinado.

La sintaxis general para truncar archivos a tamaño cero con truncate comando, es el siguiente:

truncate -s 0 filename

El -s 0 La opción establece el tamaño del archivo en cero.

Por ejemplo, para vaciar el registro de acceso de Nginx, usaría:

sudo truncate -s 0 /var/log/nginx/access.log

Vaciar todos los archivos de registro #

Con el tiempo, su unidad de disco puede llenarse con una gran cantidad de archivos de registro grandes que ocupan grandes cantidades de espacio en disco.

El siguiente comando vaciará los archivos que terminan en ".log" en /var/log directorio:

sudo truncate -s 0 /var/log/**/*.log 

Una mejor opción sería rotar, comprimir y eliminar los archivos de registro con logrotate herramienta.

Conclusión #

Para truncar un archivo en Linux use el operador de redirección > seguido del nombre del archivo.

Si tiene alguna pregunta o comentario, deje un comentario a continuación.


Linux
  1. Cómo ver o cambiar ACL en archivos de Linux

  2. Cómo vaciar un archivo de registro en Linux

  3. Cómo usar Netcat para transferir archivos en Linux

  4. ¿Cómo vaciar (truncar) un archivo en Linux que ya existe y está protegido de alguna manera?

  5. comando de linux para vaciar todos los archivos de un directorio

Cómo cambiar el nombre de un archivo (s) en Linux

Cómo descomprimir los archivos gz en Linux

Cómo vincular un archivo en Linux

Cómo encontrar archivos basados ​​en la marca de tiempo en Linux

Cómo eliminar archivos enumerados en otro archivo en Linux

Cómo comprimir un archivo en Linux