Empty Contents of Specified File Without Deleting via Command Line

May 7, 2012 - 3 Comments

Remove Contents from a specified file without deleting the file

If you’re working at the command line and need to quickly empty the contents of a file, you can do so by throwing a greater than symbol and a space in front of the filename in question.

How to Clear Contents of File from Command Line

The trick to remove the contents of a file while preserving that file looks like the following:

> filename

That approach works in bash and many other shells, but you can also use a variation of echo if it’s not working in zsh or another shell. For zsh, use the following to clear the contents of a file from the command line using echo null and redirection:

echo -n > filename

All content within the target file will be immediately removed without warning, leaving it blank while retaining the files existence, filename, and permissions. This is often preferable and quicker than manually deleting and recreating a file.

A good practical example is for clearing out the contents of log files, for example:

> ~/Library/Logs/updates.log

Or achieving the same effect with echo redirection:

echo -n > ~/Library/Logs/updates.log

You can also use this command to create a new 0 byte file at the location, similar to using the touch command.

Terminal in OS X

You’ll find this to be particularly helpful if you want to keep the permissions of a given file the same but wish to overwrite the contents, a common occurrence with log files and similar items.

.

Related articles:

Posted by: William Pearson in Command Line, Tips & Tricks

3 Comments

» Comments RSS Feed

  1. Portcontrol7 says:

    Interestingly, I messed around with this a bit this morning and found that it was unable to delete .textClipping file content. I made a file in nano, and gave it the .textClipping extension and it did remove the contents of the file…

    Strange…

  2. Bryan says:

    this is a great idea if a file is being held open for writing, rather than stop the process and delete the file and restart the process.

  3. sault says:

    Nice tip.

Leave a Reply

 

Shop on Amazon.com and help support OSXDaily!

Subscribe to OSXDaily

Subscribe to RSS Subscribe to Twitter Feed Follow on Facebook Subscribe to eMail Updates

Tips & Tricks

News

iPhone / iPad

Mac

Troubleshooting

Shop on Amazon to help support this site