chraebsli@programming.dev to Programmer Humor@programming.dev · 9 months agoTouch a file in Linuxprogramming.devimagemessage-square93fedilinkarrow-up11.2Karrow-down131
arrow-up11.17Karrow-down1imageTouch a file in Linuxprogramming.devchraebsli@programming.dev to Programmer Humor@programming.dev · 9 months agomessage-square93fedilink
minus-square48954246@lemmy.worldlinkfedilinkEnglisharrow-up21·edit-29 months agoFeels dangerous to run. What happens if the file already exists and has something important in it? touch -a is probably better
minus-squaregaterush@lemmy.worldlinkfedilinkarrow-up9·9 months agoThe other command could just be printf '' >> file to not overwrite it. Or even simpler >>file and then interrupt
minus-squareowsei@programming.devlinkfedilinkarrow-up10·9 months agoor :>>file then you don’t need to interrupt
minus-square4am@lemm.eelinkfedilinkarrow-up6·9 months ago.“:>>” is “append null” right? Do you get a file with a single ASCII NUL or is it truly empty?
minus-squareTrailblazing Braille Taser@lemmy.dbzer0.comlinkfedilinkarrow-up14·9 months agoNot 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.
minus-squareal177@lemmy.sdf.orglinkfedilinkarrow-up4·edit-29 months ago$ :|wc -c 0 $ touch /tmp/f; :>>/tmp/f; wc -c /tmp/f 0 /tmp/f
minus-squaregaterush@lemmy.worldlinkfedilinkarrow-up3·9 months agothat’s awesome, did not know about that handy operator!
minus-squareowsei@programming.devlinkfedilinkarrow-up3·9 months agoYeah! 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
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