• 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