At times, you might want to just empty the file contents without deleting it. Here is one option
server:/var/log$ ls -lt debug.log -rw-rw-rw- 1 www-data www-data 76718817 Jan 20 08:09 debug.log server$ cat /dev/null > debug.log server:/var/log$ ls -lt debug.log -rw-rw-rw- 1 www-data www-data 0 Apr 30 17:07 debug.log server:/var/log$
Notice the size of debug.log changed to "0" bytes.
/dev/null is a special file called the null device in Unix/Linux based systems. It is also referred to as bit-bucket or the blackhole (yes, similar to the blackholes in space) because it immediately discards anything written to it and only returns an end-of-file
EOF when read.
So, we are utilizing the null device and redirection mechanism to redirect the output of
/dev/null to the file that needs to be emptied. The
cat command is used to output the contents of
/dev/null which is nothing but an empty file.