I have a file called error.log on my server that I need to frequently truncate. I have rw permissions for the file. Opening the file in vi > deleting all content > saving works (obviously). But when I try the below
cat /dev/null > error.log
I get the message
File already exists.
Obviously there is some kind of configuration done on the server to prevent accidental overriding of files. Can anybody tell how do I "truncate" the file in a single command?
This question is related to
linux
file
command-line
false|tee fileToTruncate
may work as well
Since sudo will not work with redirection >
, I like the tee
command for this purpose
echo "" | sudo tee fileName
You can try also:
echo -n > /my/file
I do like this:
cp /dev/null file
You can also use function truncate
$truncate -s0 yourfile
if permission denied, use sudo
$sudo truncate -s0 yourfile
Help/Manual: man truncate
tested on ubuntu Linux
This will be enough to set the file size to 0:
> error.log
the credit goes for my senior colleague for this:
:> filename
This will not break log files, so you can even use it on syslog, for example.
Any one can try this command to truncate any file in linux system
This will surely work in any format :
truncate -s 0 file.txt
Source: Stackoverflow.com