How to Empty a Log File in Linux
In this tutorial, you'll learn various ways to truncate a log file and delete its content without deleting the file itself.
You’ll find yourself in situations where you need to empty a file. This often happens when you have huge log files and How would you do that?
One not so clean way would be to remove the file and then create a new file. But this is not a good idea. It won’t be the same file; the timestamp (atime, mtime etc) will be different along with other file permissions.
Instead of creating a new empty file, you can delete its content. So, how do you empty a file in Linux? How to clear a file from all of its content without deleting the actual file?
4 ways to empty a file in Linux
There are several ways you can empty a file without actually deleting the file. Let me show you some of these methods.
Method 1: Truncate a file using truncate command
The safest way to truncate a log file is using the truncate command.
truncate -s 0 filename
In the above command, -s is used to set/adjust the size (in bytes) of the file. When you use -s 0, it means you adjusted the file size to 0 bytes.
If you view the file content, it will be empty.
Method 2: Empty file using :> or >
The simplest way to empty a file is to use the command below. If the file is not in use, it will work in Bash:
> filename
While the above works only in Bash Shell, you can use a similar command for other shells:
:> filename
You can also use this command to clear a file:
true > filename
Method 3: Using echo command to empty file in Linux
Another way to empty a file is via echo command in Linux:
echo > filename
You can also use the echo command in this way:
echo "" > filename
Method 4: Use /dev/null to clear a file
You can also use the famous /dev/null and combine it with the cat command to clear a log file:
cat /dev/null > file.log
In the end…
And if you don’t have enough permissions for any of the above commands, this is the sure shot but a little dirty way to achieve it:
touch newfile
mv newfile filename
You can also empty a file by deleting all lines in Vim editor.
If your aim was to clear log files and make some free space, you should learn about cleaning journald logs.
I hope this quick tip helped you to clear a file in Linux. Do bookmark us for more Linux quick tips.
Creator of Linux Handbook and It's FOSS. An ardent Linux user & open source promoter. Huge fan of classic detective mysteries from Agatha Christie and Sherlock Holmes to Columbo & Ellery Queen.