6 ms·
From the next web write up - > The command that had been run was most likely ‘rm -r -f *’, which—roughly speaking—commands the system to begin removing every f
by dvdhnt 10y ago
From the next web write up -
> The command that had been run was most likely ‘rm -r -f *’, which—roughly speaking—commands the system to begin removing every file below the current directory. This is commonly used to clear out a subset of unwanted files. Unfortunately, someone on the system had run the command at the root level of the Toy Story 2 project and the system was recursively tracking down through the file structure and deleting its way out like a worm eating its way out from the core of an apple.
- wmil 10y agoIt's more likely they wanted to remove all hidden directories from their home directory, and ran `rm -rf .*`. Under some shells (eg bash) that will expand to include `..` and `.`.
- ChristianBundy 10y agoWhy is that more likely?
- reacweb 10y agoThe last time it happened to me, it was caused by a space. Instead of rm -rf toto٭, I had rm -rf toto ٭. Hopefully, it was not at the root directory and we have frequent snapshots.
- aptwebapps 10y agoI have totally never done that. If I had done that, I might have been saved by a lack of permissions. Like if I was on a mounted external drive, so not in my home directory and it didn't get too far. Edit: What would have been much more worse, if I had done it, would have been rm -rf ~ /foo instead of rm -rf ~/foo
- majewsky 10y agoSuch a bug was in an Nvidia driver install script a few years ago: rm -rf /usr /lib/modules/something/something
- yomly 10y agoThat's mortifying!
- czinck 10y agoBumblebee specifically, https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/commit/a047be85247755cdbe0acce6f1dafc8beb84f2ac https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/commi... is the fix. Pretty sure Steam had the same issue early in their linux release, probably lots of other programs too.
- cookiecaper 10y agoYes, I specifically remember a lot of hub bub about Steam deleting entire home directories if a path was input incorrectly. Glad that never bit me.
- Slackwise 10y agoThis is why I never use bash for scripting, and opt for Ruby instead. You can use the `Pathname` class to treat paths as objects, which you can concatenate only valid paths with. Aside from obviously all the other sanity-saving features.
- cookiecaper 10y agoSame. Ruby isn't my preference, but I avoid bash scripting whenever possible. I see very little need to use it when practically every machine requires Python, Ruby, and other high-level dynamic languages as pre-requisite for some basic software that's included by default. I respect bash, but it's from a bygone time. Why deal with the esoteric one-character test operators, the nitpicky spacing issues, etc? Use modern, readable, testable code. So much nicer and easier to read and work with that way. I'd love to see someone deploy a Python or Ruby-based shell. I'm sure these are available, but they're not widely used.
- dragonwriter 10y agoBash may be worse than Ruby or Python for scripting, but it's far better as an interactive shell. And I'm quite happy not having shell use hold back evolution of Ruby or Python, and not having drama like Ruby 1.8 -> 1.9 or Python 2.x -> 3.x affecting shell use.
- cobbzilla 10y agoor perhaps it was the dreaded "rm -rf ${DIR}/*" when $DIR is not defined.
- throwawayish 10y agoSafe shell coding tip #10451: Variables containing directories always have to end in a slash, and paths may never be built using variables and slashes.
- grkvlt 10y agoOr, maybe you forget which directory you are in, and delete the wrong one that way: `rm -rf ../*` when you think you're in `/mnt/work/grkvlt/tmp` but are actually in `/mnt/work/grkvlt` at the time.
- cobbzilla 10y agoobligatory call for everyone to use safe-rm [1]. it's one thing to shoot yourself in the foot, but without safe-rm you (or someone else less cautious) will eventually fire the accidental head-shot. it's happened to me a couple times; but never again since I started using safe-rm everywhere. [1] http://serverfault.com/questions/337082/how-do-i-prevent-accidental-rm-rf http://serverfault.com/questions/337082/how-do-i-prevent-acc...
- knodi123 10y agoAs a linux neophyte, I once struggled to remember whether the trailing slash on a directory was important. So I typed "rm -rf", and pasted the directory name "schoolwork/project1 " (with a trailing space), but then I waffled and decided to add a trailing slash. So I changed it to "rm -rf schoolwork/project1 /". That's my theory as to what they did.
- Symbiote 10y agorm -Rf test / rm: it is dangerous to operate recursively on ‘/’ rm: use --no-preserve-root to override this failsafe GNU rm, but I don't know when it was introduced.
- r3bl 10y agoQuick googling around, and it seems like this behavior (in Ubuntu) changed somewhere near the end of 2008: https://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/174283/comments/10 https://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/174... tl;dr That's when coreutils Ubuntu package switched from "--no-preserve-root" to "--preserve-root" by default.
- blitzkrieg3 10y agoThis is relatively recent, and caused quite a stir when it was introduced. Certainly not around during Toy Story 2. edit: More info: https://lwn.net/Articles/327141/ https://lwn.net/Articles/327141/
- coldpie 10y agoOne feature I've always wanted is to make a directory non-deletable without otherwise changing the directory's functionality. So if I do "rm -rf ~/work" I don't lose anything, but I can still do "touch ~/work/whatever". As far as I know, this is impossible.
- slau 10y agoYou don't actually need write access to a file/directory to delete it. You only need write access to the parent (removing or adding a file modifies the container, not the contained). Remove write access to the parent directory, while keeping traversal and read rights, and you'll be sorted.