Estoy tratando de escribir un script Unix que truncará / vaciará un archivo que una aplicación escribe / abre continuamente cuando alcanza, por ejemplo, 3 GB 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 automáticamente como un trabajo cron, solo publique aquí para ver si tuvieron algún problema al hacer algo similar a esto.

logrotate, podría proporcionarle algún valor (¡pero sería molesto configurarlo (solo adivinar)!).Respuestas:
Solo para agregar otra respuesta,
:es una operación no operativa en bash (compatible con POSIX), por lo que esencialmente solo abre el archivo para escribir (lo que, por supuesto, lo trunca) y luego lo cierra inmediatamente.EDITAR: como comentó Shellter, en realidad no necesita un comando para acompañar 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.
fuente
> filename(como estoy seguro que sabes). Buena suerte a todos.He usado el siguiente comando en debian
fuente
sudo sh -c ': > filename'también se truncaráfilenamesudo:sudo cp /dev/null filename. Tambiéncpes portátil mientras quetruncatees solo Linux moderno.Eso me parece razonable. Unix, por supuesto, le permitiría hacer esto de 50 formas diferentes. Por ejemplo,
echo -n "" >filename cat /dev/null >filenamefuente
trunc filenamefunciona en la versión AIX de UNIX
fuente