• null@slrpnk.net
    link
    fedilink
    arrow-up
    41
    arrow-down
    1
    ·
    8 months ago

    Is there a command that’s actually just for creating a new file?

    • Gamma@programming.dev
      link
      fedilink
      English
      arrow-up
      36
      ·
      8 months ago

      Nope. If you open a nonexistent path and you have permissions to write to that directory, then that file is created.

      • 48954246@lemmy.world
        link
        fedilink
        English
        arrow-up
        21
        ·
        edit-2
        8 months 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
          ·
          8 months ago

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

            • 4am
              link
              fedilink
              arrow-up
              6
              ·
              8 months ago

              .“:>>” is “append null” right? Do you get a file with a single ASCII NUL or is it truly empty?

              • owsei@programming.dev
                link
                fedilink
                arrow-up
                3
                ·
                8 months 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

    • Midnitte@beehaw.org
      link
      fedilink
      English
      arrow-up
      8
      ·
      8 months ago

      I mean, nano filename will work, but there’s no mkfile that I can find…

      $>filename would also work, but it’s not explicitly for creating a new file

    • tranzystorek_io@beehaw.org
      link
      fedilink
      English
      arrow-up
      6
      ·
      8 months ago

      most shells will accept outputting from a silent command to a file, e.g. :> foo.txt (where : is the posix synonym to the true command)

    • dan@upvote.au
      link
      fedilink
      arrow-up
      4
      ·
      8 months ago

      How often do you actually need a blank file though? Usually you’d be writing something in the file.

      • null@slrpnk.net
        link
        fedilink
        arrow-up
        1
        ·
        8 months ago

        I’m betting that’s why none ever materialized. Most tools that can manipulate a file, can also create that file first, so there’s just never been a usecase.

        Right-clicking the desktop to create a new txt file in Windows feels so natural, but I can’t really think of any time you’d want to create a new file and do nothing with it in a CLI.

          • null@slrpnk.net
            link
            fedilink
            arrow-up
            1
            ·
            8 months ago

            But even still, what’s a realistic usecase that would that involve needing a blank, unmodified file in that instance?

            • indepndnt@lemmy.world
              link
              fedilink
              arrow-up
              6
              ·
              8 months ago

              One use case is if you’re running a web server that is configured to return a “maintenance” page instead of the live site if a particular file exists. Which is actually pretty cool because then you don’t have to update the config when you need to do something or let your users get a bunch of 502 errors, you just touch maintenance and you’re good.