I’m a complete moron, I should’ve had that backed up and used trash…
I had to learn the hard way lol
i have
rm
aliased torm -i
, it’s basically the closest to PowerShell’s-WhatIf
that a posix shell getsThat’s why I always:
- cd .cache
- ls
- rm -r *
Type a space before rm to prevent it from being added to your history to be a extra careful.
For which shell? I just tried that on a bash system and the command was still stored in .bash_history 😔
Set the
HISTCONTROL
variable. If it is set toignorespace
then commands entered with a leading-space will not be stored in the history.
I once had a directory in
/tmp
calledetc
which contained subdirectories for something I was migrating.I thought that I was in
/tmp
when I ranrm -rf etc
… I was actually in/
I’ve started adopting the habit of putting “-rf” as the last argument to avoid accidentally deleting something before I’ve double-checked my input. Good luck, and may this never happen again.
Use nix home-manager or guix home and put your configs in a git repo (this is my guix home config for reference)
That’s very helpful now. You have added nothing other than to pull the declarative distro equivalent of “I use Arch, BTW” And then link your literal code. For shame. For shame.
nix/guix can be used on any distro and it provides a way to organize .config files so that if the .config directory gets deleted or accidentally modified for some reason, restoring it would be very easy. By putting the configuration in a git repo, it also makes it easy to restore previous configurations. I accidentally deleted a bunch of stuff in my .config directory once and that’s one of the reason I use this tooling now, so I thought OP would find it helpful also
Here’s a rule I learned the hard way a few decades ago:
- If you type “rm”, take you hands off the keyboard and take one deliberate breath before continuing your command.
- If you then type “-r”, do it again.
- If you then type “-f” do it again.
- In all cases, re-read what you wrote before hitting ENTER.
I’m a big fan of starting the command with a
#
, then removing it once I’m happy with the command to defend against accidentally hitting enterPutting
~
next to the enter key on keyboards (at least UK ones) was an evil villain level decisionWhen I’m unsure, I
ls <the-glob>
, chek, then replacels
withrm
.
Sorry for your loss. I did something similar recently. A script was creating a “~” folder in my notes folder. I wanted to delete it… Thankfully it stopped at some file it couldn’t remove and my dotfiles are in git.
ZFS and dotfiles are your friend. Sorry for your loss.
Tipps to prevent future accidents:
- Set up BTRFS snapshots with Timeshift or Snapper. Switching to BTRFS is worth it for snapshots alone.
- Do regular backups on a device that can not be reached by rm: vorta local on external hdd that you connect once a week OR vorta/borg2 to a NAS/Server that does BTRFS snapshots itself OR Nextcloud to sync to a server that has a trashbin OR git to a server. Just remember that Nextcloud and git are unencrypted, so the server has to be secure and trustworthy. Vorta and borg2 can be set up with encryption.
Mistakes are unpreventable due to our error-prone brains, but it is a choice to repeat them.
You’re just the latest member of a long and storied fraternity of the best worst operating system architecture.
https://web.mit.edu/~simsong/www/ugh.pdf
One of us…
I should’ve had that backed up
Absolutely! IT’s time to check out Stow now. With this you can easily manage your configuration and dotfiles (and all other data) in a single location.
https://venthur.de/2021-12-19-managing-dotfiles-with-stow.html
I should have had backups of important files in my home directory
Lessons learned the hard way
I’m a complete moron,
You are not,
Every person learning with the hardway isnt a moron,You have to do, to really learn,
If you do it again though…
🫢 🤷♀️ I would say, that depend the personnal situation,
But i think, OP learned :)
I should’ve […] used trash
For those who don’t know: trash-cli
What an awesome tool that I wish I knew sooner. Also the && operator in sh. I think you can figure out what happened.
It upsets me to no end that this isn’t a standard package 😭
But… why?
I was in a rush to free up space. Rust’s binary sized can be really huge and they were taking up like 20GB at the time, but I was unaware of this.