Luckily, the fix is easy: instead of prepending the command, you just replace > somefile with | sudo tee somefile and >> somefile with | sudo tee -a somefile whatever the command before was. You may also add > /dev/null if you don't want if to echo everything.
Example:
echo "truncated" | sudo tee /var/log/toolong.log echo "additional log record" | sudo tee -a /var/log/toolong.log
Of course, this is not the only way and it's not always the best but it works all the time, it's quite straight-forward (doesn't require any escaping or changing the original command in any way), and it doesn't require any additional programs to be installed.
Feel free to write about your preferred method in comments.
And a bonus tip about tee, not sudo-related:
wget -O - http://example.com/dvd.iso \ | tee >(sha1sum > dvd.sha1) \ >(md5sum > dvd.md5) \ > dvd.iso
No comments:
Post a Comment
No spam, please.