When I feel like scrapping the whole project and starting over:
Me: (in the project dir) sudo rm -rf /*
Me: (after waiting a while) Something feels off… Why is it taking so long to delete everything?
Me: (suddenly realizing) ^C ^C ^C
System: Press any key to continue…
当我想把整个项目推倒重做时:
我:(在项目目录)sudo rm -rf /*
我:(等了一会儿)有点不对劲。。。怎么删了这么长时间还没删完
我:(恍然大悟)^C ^C ^C
系统: Press any key to continue…
I restored a system once by kubeexec into a running pod after someone did this on the host. It was … Strange.
System: Press any key to continue…
I DON’T HAVE
[any]-KEY ON MY KEYBOARD!Fun fact, did you know that undefined varuables in Makefiles are substituted for “”? So be careful when copypasting some code from your previous Makfefile and make sure to use guardrails like ./$(VAR)
In the end I ran
rm -rf, lost half of my $HOME and did not touch my laptop for a few days. Too bad it ran from inside Neovim. Could have noticed sooner.I did sudo apt purge to remove an extra desktop environment. Then i found out that it also deletes dependencies.
Thankfully i was able to save the output of the command and then used python to parse and construct an apt command to reinstall all the things.
I felt both stupid and smart at the same time
This joke has been out of date for over a decade because the
--preserve-rootflag is enabled by default in most (all?) distributions.I think that only helps is you target /, not /*
You must be fun at
partiesfederated message boards
This is apparently a joke! But I have done this in real life. It’s an honest mistake you can make if you’re experienced, fast, complacent and careless. Always be prepared for it. Here are some tips:
-
Don’t use
sudofor anything other than system operations. Not even for editing configuration files. -
Never put any development/sysadmin projects under ownership of root. Always develop the project under your personal unprivileged user account. Use
sudoonly for the final deployment of project to system directories. -
Use
sudoeditto edit any system configuration files. -
Avoid
./*at all times in favor of just*. While this is counterintuitive, this is actually safer. You will have less habitual urge to type the/alone by accident. -
Avoid the
-fflag in all instances for any command until some operation fails. That will leave you with enough time to reflect on your mistakes when you make one. -
Always keep a data recovery plan. Backups are highly recommended. If you use Btrfs partitions, you can make periodic read-only snapshots of your critical data. You can automate this process with a tool like Snapper.
Btrfs snapshots store de-duplicated data. So each snapshot stores only the changes from the previous one. It doesn’t use a lot of space, even when backing up large media files. You’ll still get the chance to recover your data at the time of the last snapshot. -
Most operating system files aren’t critical data and don’t need to be backed up. Backup the system configuration files in
/etcand the package installation list if your package manager facilitates it. -
This is optional, but useful in case your Linux installation gets nuked somehow, including this nonsense.
You can always reinstall the distro and start over again. But often times, you can trivially recover the installation by booting from a live USB/CD and doing some manual repair. Learn tochrootinto your nuked root partition and operate from inside it.
Most live disks give you an option to repair an installation, in case you deleted the root partition by accident. You can also repopulate the deleted files using commands likedebootstrapandpacstrap.
Another tip: use
rmdirto remove empty directories instead ofrm -rf.rmdirfails if the dir turns out to still contain some files. This way you’ll mitigate the risk of accidentally nuking a directory full of important data.
-
One time I ran rm on a directory and it started deleting files on the NAS mount I had in that directory and forgot about. So note to self: do not mount things inside project directories
Me who wants to remove a system-wide script:
rm -rf /usr/bin /local/script.sh
Yes, the space was an accident, and yes, this did happen 😋
Haha, I’m dying laughing…
I do not understand?
rm -rf /*This deletes everything in root; a great way to break your OS and lose all data too.
OP meant to run
rm -rf ./*Note the period, which represents the current directory. So this deletes everything in the current directory instead of the entire filesystem
This deletes everything in root; a great way to break your OS and lose all data too.
Nowadays
rmcommand will prevent doing this, without option--no-preserve-root.Yes, thats right…
Why not just:
rm -r *What is the necessity of that sudo,
-fand/?Disclaimer: I have carelessly committed this nonsense too. Thankfully, the important data was backed up. I used a live USB to access the nuked OS partition and used chroot to repopulate the deleted system files. Didn’t even have to reinstall the OS.
Always have a disaster plan. If you have a btrfs partition, even periodic btrfs snapshots are a cheap lifesaver. Everything else can be saved like a breeze with some terminal magic.
mv folder delete-this rm -rf delete-thisgives you one chance to reconsider what you just did before it is too late. And you never have a risk of a dangerous delete-all lurking in your command history.
Or
rm -rf dirinstead a relative path. Write down the actual path or directory name you want to delete. Do not use only variables for the path. But combining with literals is fine, such asdir/${subdir}/*. One can also test if the directory exists before starting the process, especially useful in scripts. And I recommend using--verboseoption to see what is being deleted:test -d dir && rm -rfv dir
Why do you need
sudoto run your project? Are you developing kernel drivers?Looking at your avatar, do you play Freedoom? Deadflare from version 0.12. This post is just a joke, don’t take it too seriously.
I don’t play Freedoom regularly, I just like the sprite. I ported it to KaiOS though.
Oh, GOOD
Even then, nothing in the build directory should have unusual permissions.
make && sudo make installor whatever.It’s laziness. A lot of the build stuff is read-only. And as the simple art of
yes | rm -r <folder>is dying,sudois an “easy” way to avoid having to typeYdozens of times.Ope, didn’t know i could do that that safe way.
No biggie. At least you preserved
/. :)Good point, if I do this I can distrohop without worrying of installing anything!
That’s why I always delete in file manager, if I made a mistake I can retrieve it from “waste bin”, can you make some kind of recycle bin for rm command? Nvm I found this after 5 second of online searching https://github.com/babarot/gomi
Idk about gomi, but trash-cli is a standard package I install on all of my computers
.
I feel like I should try this one day if I reset my distro.














