Vaciar el contenido de un fichero en Linux sin borrarlo
Puede parecer algo poco práctico pensando en ¿para qué querría vaciar el contenido de un fichero si puedo primero borrarlo y luego crearlo? En ocasiones los nombres de los ficheros son tan largos o tan complicados de recordar que en lugar de andar con otros trucos nunca viene mal saber cómo “vaciar” el contenido de un fichero en una sola orden.
Nos basaremos en dos conceptos:
- La orden cat para concatenar o mostrar archivos
- El fichero /dev/null llamado el “periférico nulo” un fichero especial que sólo devuelve EOF (fin de fichero, del inglés End Of File) cuando lo lees
¿Qué haremos? Concatenarle a nuestro fichero objetivo el fichero nulo de forma que su único contenido sea un fin de fichero, tan sencillo como hacer:
cat /dev/null > fichero_objetivo
Es especialmente útil con ficheros de logs que se llenan de muchos mensajes y por comodidad, en fase de pruebas, puedes usarlo para ir borrando el contenido conforme lo necesitemos.
Otra opción sería hacer primero un rm y luego un touch, ¿se te ocurre otra más?