Empty a file without deleting it
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.