• 48954246@lemmy.world
    link
    fedilink
    English
    arrow-up
    21
    ·
    edit-2
    1 year ago

    Feels dangerous to run. What happens if the file already exists and has something important in it?

    touch -a is probably better

    • gaterush@lemmy.world
      link
      fedilink
      arrow-up
      9
      ·
      1 year ago

      The other command could just be printf '' >> file to not overwrite it. Or even simpler >>file and then interrupt

        • 4am@lemm.ee
          link
          fedilink
          arrow-up
          6
          ·
          1 year ago

          .“:>>” 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.

          • al177
            link
            fedilink
            arrow-up
            4
            ·
            edit-2
            1 year ago

            $ :|wc -c 0 $ touch /tmp/f; :>>/tmp/f; wc -c /tmp/f 0 /tmp/f

          • owsei@programming.dev
            link
            fedilink
            arrow-up
            3
            ·
            1 year ago

            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