• Infernal_pizza@lemmy.world
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 month ago

    Why doesn’t rm -rf /* also require —no-preserve-root? That seems just as easy to type accidentally and will just nuke your system without asking

    • SavvyWolf@pawb.social
      link
      fedilink
      English
      arrow-up
      15
      ·
      1 month ago

      It’s actually harder to detect that. The * is expanded before the arguments are sent to rm, so it just sees a list of directories like /bin /usr /dev /sbin /home and so on.

      You could implement logic to detect that case, but at that point you’re just playing whackamole.

      • zea@lemmy.blahaj.zone
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        1 month ago

        I believe zsh catches this and makes you confirm.

        Well, that or one of my plugins, I’m not sure.

    • superkret
      link
      fedilink
      arrow-up
      8
      ·
      edit-2
      1 month ago

      If you try to put in safeguards for every possible system-nuking command someone with root rights might type, you’ll never get done.
      When you’re typing “rm -rf” as root, you should immediately stop and triple-check what you’re doing.
      Cause either there’s a safer way to do what you want to do, or what you’re trying isn’t a good idea in the first place.

      (Even when you want to delete lots of stuff in root space, a better way is to use find. You can use it to look for and list the files you want to delete. After you’ve checked its output and verified that those are the correct files, just cursor-up to get the same find query again and add --delete at the end)

      • Ziglin@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        23 days ago

        I am curious how. If you were deleting everything in the local directory you wouldn’t need the ./ before the asterisk, so was it some sort of piping that messed it up?