Apparently, Prism Launcher chose to adhere to the idiotic principle of the hidden “trashbin”, .Trash-$(uid), invented by Ubuntu. Even though it’s based on QT. This can’t be disabled. It accumulated 139 GB of literal Trash, fully replaceable, over time. Just … why? There’s even an open issue about this, for over a year, referenced multiple times. I guess I have another point on my agenda.
the hidden “trashbin”, .Trash-$(uid), invented by Ubuntu
This isn’t some “idiotic principle invented by Ubuntu”, it just follows the freedesktop.org Trash specification. For many users, it can be really beneficial, see also the spec’s introduction:
An ability to recover accidentally deleted files has become the de facto standard for today’s desktop user experience.
Users do not expect that anything they delete is permanently gone. Instead, they are used to a “Trash can” metaphor. A deleted document ends up in a “Trash can”, and stays there at least for some time — until the can is manually or automatically cleaned.
Whether an application like Prism Launcher should use the trash can or delete the files directly is an entirely different question.
and proper trashing is actually really helpful, so you can trash files on encrypted volumes without leaking them to a unencrypted trash dir.
trashing saves time and has a more continous workflow, as you don’t have to confirm each file to prevent accidents, because you can restore if you deleted too much
But why wouldn’t they use .local/share/Trash instead? Isn’t that supposed to be a unified directory for that very purpose?
Because that would take a long time if you deleted a large file in another partition or drive. You could also end up not having enough space to move the file to trash and if the trash directory is on an SSD, it would add a lot of unnecessary wear to it.
I use command
trash-empty
to empty all trashcan of all the users, after each system update. It’s a non standard program, but most likely available in your distributions repository: https://github.com/andreafrancia/trash-cli And my alias/function will show each file that is about being deleted (just put it in .bashrc, if you have installedtrash-cli
, which includestrash-empty
):old function (click to expand)
empty() { echo "Files to delete:" trash-empty -f --dry-run | awk '{print $3}' | grep -vF '/info/' echo trash-empty }
Edit: After I posted I just realized there is a more straightforward way of doing it:
New and more simple alias:
alias empty='trash-empty -f --dry-run ; trash-empty'
This searches all trash cans, lists all files it has found to be deleted, then lists all directories it looked under and then asks if you want really delete. With
trash-empty -f
it deletes without asking.On servers I primarily use a terminal, only for things like virt-manager do I ever fire up a desktop so on servers mostly moot.
This is why I use gdu on servers
Hard delete used to be in the drop-down along with move to Trash, since I rarely accidentally delete things and when I do I have backups, I much preferred that arrangement.
@30p87 @hyperreal ncdu is great for that
I did this yesterday while trying to make a backup before formatting and then updating my work rig and I’m SO GLAD that the decades have taught me to take knee-jerk/automatic actions that forces me to make entire volume backups; otherwise this last month of work life would have been AWFUL!!!