Skip to main content

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.

Abhishek Prakash

Warp Terminal

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.

How to Clear Systemd Journal Logs in Linux
This quick tutorial shows you two ways to clear systemd journal logs from your Linux system.

I hope this quick tip helped you to clear a file in Linux. Do bookmark us for more Linux quick tips.

Abhishek Prakash