• Wulff@sh.itjust.works
    link
    fedilink
    arrow-up
    43
    ·
    1 year ago

    In Linux, the root of the filesystem is /

    The command would remove recursively every file/directory in the filesystem, essentially nuking the whole system.

    • Kühe sind toll@feddit.de
      link
      fedilink
      arrow-up
      14
      arrow-down
      1
      ·
      1 year ago

      Im not sure if it would delete the whole system. Isn’t it more likely that it will destroy everything until it kills a file/directory necessary for the operation to run?

      • Possibly linux@lemmy.zip
        link
        fedilink
        English
        arrow-up
        34
        arrow-down
        1
        ·
        1 year ago

        Its running in ram so no, it would destroy everything.

        What’s worse is if you have any storage mounted. I’ve known people who wiped there backups

        • Haui@discuss.tchncs.de
          link
          fedilink
          arrow-up
          4
          ·
          1 year ago

          Thats rough. Good to know. Also one reason why I ever only connect to storage when I need it and dismount when I don’t and don’t save the credentials (and have another backup off site).

      • Cypher@aussie.zone
        link
        fedilink
        arrow-up
        31
        ·
        1 year ago

        The reason you expect this is because Windows has a file lock behaviour that won’t let you delete a file when it’s in use, in Linux this limitation doesn’t exist.

        Raymond Chan, arguably one of the best software engineers in the world, and a Microsoft employee, has repeatedly lamented the near malware like work arounds developers have had to invent to overcome this limitation with uninstallers.

        Think about uninstalling a game. You need to run “uninstall.exe” but you don’t want uninstall.exe to exist after you’ve run it… but you can’t delete a file that’s in use. Uninstall.exe will always be in use when you run it….so how do you make it remove itself?

        Schedule a task? Side load a process? Inject a process? Many ways…. But most look like malware.

        Linux has never suffered this flaw.

        • Tlaloc_Temporal@lemmy.ca
          link
          fedilink
          arrow-up
          6
          ·
          1 year ago

          This seems like a pretty specific use case, but also pretty common. A system function to delete the file that called it should cover that entirely, but I guess psudo-malware is acceptable?

          • Cypher@aussie.zone
            link
            fedilink
            arrow-up
            5
            arrow-down
            1
            ·
            1 year ago

            Pseudo-malware is pretty much the way to go as a developer in my experience.

            I believe his suggestion of a javascript file that deletes itself works only works because javascript gets sandboxed and doesn’t suffer from Windows “flaw” with file locks.

            https://devblogs.microsoft.com/oldnewthing/20230911-00/?p=108749

            While Raymond does offer a solution he’s also completely side stepping any responsibility on Microsoft’s part in creating and perpetuating this problem without offering their own native solution.

            • Buddahriffic@lemmy.world
              link
              fedilink
              arrow-up
              2
              ·
              1 year ago

              That last bit IMO is one reason to argue against him being the best software engineer. He might have the skills, but they are offset by his conflict of interest with MS.

        • Octopus@thelemmy.club
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          I made a Batch uninstaller (to one of my other bat scripts I think), and it could remove itself without any problem just with the command “del whateverthenamewas.bat”

          • tslnox@reddthat.com
            link
            fedilink
            arrow-up
            4
            ·
            1 year ago

            Yeah, because the bat file isn’t actually running, it’s just a list of commands cmd should execute.

            • Natanael@slrpnk.net
              link
              fedilink
              arrow-up
              3
              ·
              1 year ago

              Yup, CMD acts as a parser / runtime and the process is bound to the CMD binary, the script file is being run by CMD which keeps a copy of it in its own working memory in RAM

      • Knusper@feddit.de
        link
        fedilink
        arrow-up
        24
        ·
        1 year ago

        Before throwing away an old laptop, I had it do that to itself. Well, more specifically I used shred, which doesn’t just mark files as ‘deleted’, but also actively overwrites the bytes on disk.

        I started it from a TTY, so that there was no GUI that could want to load files from disk and then potentially crash the whole operation. But yeah, it just went through like normal and I ended up back on my shell (which makes sense, the shell should be in RAM).
        It was only when I ran exit to close that shell, that the system showed it was irreparably broken.

        I did then also take out the hard drive to whack it with a hammer, just to be sure. ¯\_(ツ)_/¯

      • JPAKx4@lemmy.sdf.org
        link
        fedilink
        arrow-up
        20
        ·
        1 year ago

        A lot of Linux distros load most system required processes into memory, which is why you can update while using the system. This would also allow you to (probably) delete everything.

      • Wulff@sh.itjust.works
        link
        fedilink
        arrow-up
        4
        ·
        1 year ago

        Well, maybe. My explanation was an oversimplification.

        You can always try it and see for yourself (in a VM of course).

      • Natanael@slrpnk.net
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 year ago

        It would delete all files, but if you happen to be running a distro configured to run from a RAM disk after boot then it won’t actually immediately halt (see almost every single liveCD Linux environment)