Trash management

From ArchWiki

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's Trash specification.

Note: Some applications can use a trash can per filesystem (see the specification)
Warning: When deleting files on another filesystem, usage of a trash can induce some latency because the files will be transferred between filesystems. In this case, you might want to use a implementation that create a trash folder per filesystem (See Trash directories in the specification).

Trash creation

This article or section needs expansion.

Reason: Add other utilities (Discuss in Talk:Trash management)

Some GUI file managers, such as GNOME Files and Dolphin, natively support moving files into the trash. There are also some CLI tools:

  • glib2 provides a gio trash file... command to move files into the trash, while gio trash --empty empties the trash. See also "trash" in gio(1) § COMMANDS. The gvfs package is required to fully support trash management through the gio trash command.
  • kde-cli-tools provides a kioclient5 command that can be used as kioclient5 move file trash:/ to move file to the trash.
  • trash-cli — A command-line interface implementing's Trash specification. || trash-cli
  • trashman — A Python trash manager. || trashmanAUR
  • rmtrash — trash-put made compatible to GNUs rm and rmdir. || rmtrashAUR
  • trash-d — drop-in replacement for GNU rm, focusing on compatibility and with much better performance, written in D. || trash-dAUR
  • trashy — simple, fast, and featureful alternative to rm and trash-cli written in rust || trashyAUR
  • gtrash — A Featureful Trash CLI manager written in Go || gtrash-binAUR || rmwAUR

Trash space usage management

To prevent the trash can from using too much space, you can empty it yourself, or have a pruning policy

Software list

  • autotrash — Tool to automatically purge old trashed files || autotrashAUR


This article or section needs expansion.

Reason: Add table with a list of criteria (Discuss in Talk:Trash management)
  • 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


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)


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.

# <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.