scripts script resueltos paso pasar parametros hacer espaƱol ejercicios ejemplos como comandos bash shell truncate

bash - resueltos - Script de shell Unix para truncar un archivo grande



scripts linux ejercicios resueltos (4)

Intento escribir un script de Unix que truncará / vaciará un archivo que una aplicación está escribiendo / abriendo continuamente cuando alcanza, digamos, 3GB de espacio. Sé que el siguiente comando lo haría:

cp /dev/null [filename]

Pero voy a ejecutar esto en un entorno de producción de forma automática como un trabajo de cron, solo publicando aquí para ver si ustedes enfrentaron algún problema al hacer algo similar a esto.


Eso me parece razonable. Unix, por supuesto, le permitirá hacer esto de 50 maneras diferentes. Por ejemplo,

echo -n "" >filename cat /dev/null >filename


He usado el siguiente comando en debian

truncate -s 0 filename


Solo para agregar otra respuesta,

: > filename

: es un no-op en bash, por lo que básicamente solo abre el archivo para escritura (que por supuesto trunca el archivo) y luego lo cierra inmediatamente.

EDITAR: como comentó Shellter, en realidad no necesitas un comando para ir junto con la redirección:

$ echo foo > foo.txt $ cat foo.txt foo $ > foo.txt $ cat foo.txt $

Una simple redirección por sí sola borrará el archivo.


trunc filename

funciona en AIX sabor de UNIX