Trash management
To prevent accidental deletion of files, you can use a trash can. To ensure compatibility between multiple applications, you can use software (CLI, GUI or Library) that follow the FreeDesktop.org's Trash specification.
Trash directories
in the specification).Contents
Trash creation
-
glib2 provides a
gio trash [FILE1] [FILE2] ...
command that allows to move files into the trash, whilegio trash --empty
empties the trash - trash-cli — A command-line interface implementing FreeDesktop.org's Trash specification.
- bashtrash — Freedesktop-complient trashcan implemented in bash script
- trashman — A Python trash manager
- rmtrash — trash-put made compatible to GNUs rm and rmdir
Trash space usage management
To prevent the trash can from using to much space, you can empty it yourself, or have a pruning policy
Software list
autotrash (not in the AUR)
Criteria
- make sure to have at least x MB of free space
- delete files older than x days
- only empty if you have less than x MB of free space (useful in combination of previous criteria)
- maximum trash can size
- file size
- file type
- original path
Automation
To automate emptying the trash can, you can use cron, systemd/Timers, or inotify (using inotify, only new deletion would trigger the trash can automation)
Troubleshooting
Unable to find or create trash directory
External drives
/etc/fstab
might not be set correctly. Note that ID
must be replaced by your own user id by $ id
.
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> UUID=75667752-8b06-11ea-bc55-0242ac130003 /externalDrive ntfs-3g defaults,uid=ID 0 1
Make sure that the root directory of the drive contains ~/.Trash-1000/{expunged,files,info
} and set relevant read permissions for the directory and sub-directory.