• 4am@lemm.ee
    link
    fedilink
    arrow-up
    21
    ·
    9 months ago

    “Do one thing and do it very well” is the UNIX philosophy after all; if you’re 99% likely to just create that missing file after you get a file not found error, why should touch waste your time?

    • stebo@lemmy.dbzer0.com
      link
      fedilink
      arrow-up
      20
      ·
      9 months ago

      with this logic, any command that moves, copies or opens a file should just create a new file if it doesn’t exist

      and now you’re just creating new files without realising just because of a typo

    • Kusimulkku@lemm.ee
      link
      fedilink
      arrow-up
      9
      ·
      9 months ago

      But this directly goes against that philosophy, since now instead of changing timestamps it’s also creating files

      • kautau@lemmy.world
        link
        fedilink
        arrow-up
        10
        ·
        edit-2
        9 months ago

        You can pass -c to not create a file, but it does go against the philosophy that it creates them by default instead of that being an option

        EDIT: Looking closer into the code, it would appear to maybe be an efficiency thing based on underlying system calls

        Without that check, touch just opens a file for writing, with no other filesystem check, and closes it

        With that check, touch first checks if the file exists, and then if so opens the file for writing