Warning: Some posts on this platform may contain adult material intended for mature audiences only. Viewer discretion is advised. By clicking ‘Continue’, you confirm that you are 18 years or older and consent to viewing explicit content.
Not really. I believe : is the “true” builtin. So it’s like running a program that exits with zero and writes nothing to stdout. The >> streams the empty stdout into the named file.
I guess printf “” > file
Feels dangerous to run. What happens if the file already exists and has something important in it?
touch -a
is probably betterThe other command could just be
printf '' >> file
to not overwrite it. Or even simpler>>file
and then interruptor
:>>file
then you don’t need to interrupt.“:>>” is “append null” right? Do you get a file with a single ASCII NUL or is it truly empty?
Not really. I believe : is the “true” builtin. So it’s like running a program that exits with zero and writes nothing to stdout. The >> streams the empty stdout into the named file.
$ :|wc -c 0 $ touch /tmp/f; :>>/tmp/f; wc -c /tmp/f 0 /tmp/f
that’s awesome, did not know about that handy operator!
Yeah!
it’s basically a noop, I use it as a placeholder when I’m writing a script, since bash doesn’t accept code blocks with no commands