• Victor@lemmy.world
    cake
    link
    fedilink
    arrow-up
    60
    ·
    2 months ago

    Thank God they went with file name extensions so we didn’t have to preface every source .txt file with header content to instruct the editor about what kind of content it would have.

      • cron@feddit.org
        link
        fedilink
        arrow-up
        15
        arrow-down
        1
        ·
        2 months ago

        Because both ways are used. Microsoft relies on file names, linux on the first bytes of the file.

        • Consti@lemmy.world
          link
          fedilink
          arrow-up
          20
          ·
          edit-2
          2 months ago

          Not quite correct. For html, that is to signal standard compliance, you can leave it away and the browser will still handle it. For the bash one, all (most) shell scripts use .sh, so you need to give a shebang to tell the loader which executable (sh, bash, zsh, csh, …) to use

          Also on Linux xdg does take file extensions into account, just executables do not

      • Revan343@lemmy.ca
        link
        fedilink
        arrow-up
        5
        ·
        2 months ago

        For shell scripts it’s because bash isn’t the only shell; if you leave out the shebang line, Ubuntu will run your script in Dash instead

      • xigoi@lemmy.sdf.org
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        2 months ago

        For HTML, it’s to distinguish “standards mode” HTML from “quirks mode” HTML (which doesn’t need a header).

      • Kairos@lemmy.today
        link
        fedilink
        arrow-up
        1
        ·
        2 months ago

        Nothing unless you want to serve them without some other way to see what file type they are.

        You can run bash scripts with bash.

        Don’t know what a desktop file is.

        HTML has that because webservers used to not have auto media type detection and response headers.