womp womp
Linux
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
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 enter
Putting ~
next to the enter key on keyboards (at least UK ones) was an evil villain level decision
When I'm unsure, I ls <the-glob>
, chek, then replace ls
with rm
.
This. When the ls command works, hit ctrl-a, meta-d, type rm, enter.
Oh, didn't knew about Alt d
. Thx
I really like this # idea. I've also taken to holding off on adding sudo when deleting privileged files
I never thought of doing that in 40 years. It's a great idea actually. Thanks!
Or have backups (lol)
AND have backups.
In the few years of me exclusively using the command line to manage files, even having rm aliased to rm -rf, and at some point to sudo rm -rf, out of convenience, I think it has happened thrice that I deleted the wrong file, and twice I was able to restore it with (hourly) backups. The third time, it was a minecraft world which I had created to test some mods and the server start script, and I had excluded it from backups because my ~/games dir is usually only used by steam.
-i
doesn't exist?
I once had a directory in /tmp
called etc
which contained subdirectories for something I was migrating.
I thought that I was in /tmp
when I ran rm -rf etc
... I was actually in /
That'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.
Holy shit, I never knew you could do that! I've always really wanted a feature to stop random commands from being added to my history.
Some shells provide ways to prevent some commands to be added to the history
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 to ignorespace
then commands entered with a leading-space will not be stored in the history.
rm -r *
Also, if you have to type that, don't use the numpad: / is only one key away from *. If you finger snags the / key on its way to * and you happen to be root, your root partition will go bye-bye.
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.
I do exactly the same. It's not foolproof but it's better than nothing.
I remember, almost a decade ago, when I discovered that rm
on mac didn't accept flags as last arguments... I hope they changed that behavior
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.
Just remember that Nextcloud and git are unencrypted
you can setup encrypted Nextcloud
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...
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.
A tip, to delete files that have names similar to variables or other expandables, put the filename in between single ticks like this 'filename'. Single ticks prevent expansion.
Thanks for the tip!
i have rm
aliased to rm -i
, it's basically the closest to PowerShell's -WhatIf
that a posix shell gets
thats the sort of command you need to make an alias for
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
Ow.
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 :)
if your session is still running you can use env
to help reconstruct it