Honestly, after re-reading my own comment, I’m considering just putting some stupid-simple wrapper around mv that moves files to a dedicated trash bin. I’ll just delete the trash bin every now and then…
-Proceeds to collect 300 GB of build files and scrapped virtual environments over the coming month-
My “trick” with this is to mv files I’m very sure I want to be “deleting” into /tmp . If it instantly turns out to be a mistake, I can pull it back. Else, it gets purged on reboot.
This is usually A-okay for my home server since it reboots so rarely! A desktop machine might give you a little less time to reconsider. But it at least solved the “trash is using 45% of my hard disk now” issue haha.
In the very worst case scenario there’s the “Drop everything and run photorec / testdisk” as a last resort!
Then can alias rm to echo Use trash instead! or something. You wanna build new habits, not co-opt rm, it could happen easily that you’re ssh’d into a system where your rm alias doesn’t exist or similar
This breaks the advice to never alias a standard command to do something radically different from its regular function.
Sure, go ahead and alias ls to have extra options like --color, but don’t alias rm to do nothing, or even rm -i (-i is interactive and prompts for each file).
Why? Because one day you’ll be logged into a different system that doesn’t have your cushioning alias and whoops, bye-bye files.
Now that you think about it, you thought that ls output looked weird, but that didn’t actually break anything.
As you suggest, yes, look into your OS’s trash option, but leave rm alone.
GNOME-derived systems can use gio trash fileglob (or gvfs-trash on older systems) to put things in the actual desktop trash receptacle.
KDE’s syntax sucks, but it’s kioclientX move fileglob trash:/ where X may or may not be present and is a version number of some kind.
You could set up a shell function or script that fixes that syntax and give it any name you like - as long as it doesn’t collide with a standard one. On that rare foreign system it won’t exist and everything will be fine.
You alias rm to do nothing. There is no danger of aliasing rm to echo. The only thing that’ll happen is nothing.
Or are you seriously suggesting that if you do this, you somehow get used to rm doing nothing? Like you’ll just start rm’ing randomly because you know it’ll echo? I mean, stupider things have happened, but… yeah
I think one solution is (browseable) Snapshots
Honestly, after re-reading my own comment, I’m considering just putting some stupid-simple wrapper around
mv
that moves files to a dedicated trash bin. I’ll just delete the trash bin every now and then…-Proceeds to collect 300 GB of build files and scrapped virtual environments over the coming month-
My “trick” with this is to mv files I’m very sure I want to be “deleting” into
/tmp
. If it instantly turns out to be a mistake, I can pull it back. Else, it gets purged on reboot.This is usually A-okay for my home server since it reboots so rarely! A desktop machine might give you a little less time to reconsider. But it at least solved the “trash is using 45% of my hard disk now” issue haha.
In the very worst case scenario there’s the “Drop everything and run photorec / testdisk” as a last resort!
There are solutions already. Just use them instead of
rm
https://wiki.archlinux.org/title/Trash_management
Then can alias rm to
echo Use trash instead!
or something. You wanna build new habits, not co-opt rm, it could happen easily that you’re ssh’d into a system where your rm alias doesn’t exist or similarMy thought wasn’t to alias
rm
, but rather to make a function likermv <file>
that would move the file to a trash directory.But of course this already exists- thanks for pointing me to the resource:)
This breaks the advice to never alias a standard command to do something radically different from its regular function.
Sure, go ahead and alias
ls
to have extra options like--color
, but don’t aliasrm
to do nothing, or evenrm -i
(-i
is interactive and prompts for each file).Why? Because one day you’ll be logged into a different system that doesn’t have your cushioning alias and whoops, bye-bye files.
Now that you think about it, you thought that
ls
output looked weird, but that didn’t actually break anything.As you suggest, yes, look into your OS’s trash option, but leave
rm
alone.GNOME-derived systems can use
gio trash fileglob
(orgvfs-trash
on older systems) to put things in the actual desktop trash receptacle.KDE’s syntax sucks, but it’s
kioclientX move fileglob trash:/
whereX
may or may not be present and is a version number of some kind.You could set up a shell function or script that fixes that syntax and give it any name you like - as long as it doesn’t collide with a standard one. On that rare foreign system it won’t exist and everything will be fine.
You alias
rm
to do nothing. There is no danger of aliasing rm to echo. The only thing that’ll happen is nothing.Or are you seriously suggesting that if you do this, you somehow get used to
rm
doing nothing? Like you’ll just start rm’ing randomly because you know it’ll echo? I mean, stupider things have happened, but… yeahI admit that of the things
rm
could be aliased to do, it is one of the safer ones. It’s still bad practice in my book.