Consent to the use of Personal Data and Cookies
This website needs your consent to use cookies in order to customize ads and content.
If you give us your consent, data may be shared with Google.
This website needs your consent to use cookies in order to customize ads and content.
If you give us your consent, data may be shared with Google.
These are the easiest ways to overwrite and truncate files in Linux.
By. Jacob
Edited: 2023-05-14 08:52
One of the easiest-to-remember ways to overwrite a file completely, emptying its contents, is to just > /path/to/file.txt – but you can also use echo to write an empty string to the file. E.g: echo "" > /path/to/file.txt.
The shortest way to overwrite file:
> /path/to/file.txt
Note. Some shells may use : > /path/to/file.txt instead – the : is a shell builtin that does not return anything.
Truncating the file:
truncate -s 0 /path/to/file.txt
Using a single greater than sign will completely overwrite the file:
echo > /path/to/file.txt
Using (>>) double greater than will append the output to the end of the file:
echo "Added to the end of file." >> /path/to/file.txt
If noclobber is set, bash will attempt to prevent you from accidentally overwriting files and potentially loosing data, in that case you will get an error message like this in the console:
-bash: test.php: cannot overwrite existing file.
noclobber is a safety feature that helps to prevent you from doing something potentially catastrophic. To get around that, you may use the following syntax instead:
echo >| /path/to/file
Similarly you can create aliases for commands like mv and cp to run them interactively -i – this is also known as "prompt before overwrite":
set -o noclobber
alias copy='cp --interactive'
alias move='mv --interactive'
If you then try to copy or move a file to a directory that already has a file with the same name, an error message like this will be shown:
cp: 'test.txt' and '/home/ubuntu/test.txt' are the same file
If you want this extra safety net, just include it in your ~/.bashrc or ~/.zshrc file.
Truncating a file is going to be better when someone might be working on the file, as they will not have to reopen the file, and can just continue to use their file pointer.
truncate -s 0 /path/to/file.txt
More in: Linux Tutorials
Tell us what you think: