Jump to content

# Trash management

2 languages

- 日本語
- 中文（简体）

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

  https://github.com/andreafrancia/trash-cli || trash-cli

- trashman — A Python trash manager.

  https://github.com/Kwpolska/trashman || trashmanAUR

- rmtrash — trash-put made compatible to GNUs rm and rmdir.

  https://github.com/PhrozenByte/rmtrash || rmtrashAUR

- trash-d — drop-in replacement for GNU rm, focusing on compatibility and with much better performance, written in D.

  https://github.com/rushsteve1/trash-d || trash-dAUR

- trashy — simple, fast, and featureful alternative to rm and trash-cli written in rust

  https://github.com/oberblastmeister/trashy || trashyAUR

- gtrash — A Featureful Trash CLI manager written in Go

  https://github.com/umlx5h/gtrash || gtrash-binAUR

- rmw (ReMove to Waste) — A configurable CLI trash management utility that can purge your trash after X days and integrate with FreeDesktop.org's Trash specification, written in C

  https://theimpossibleastronaut.com/rmw-website/ || 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

  https://github.com/bneijt/autotrash || autotrashAUR

### Criteria

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

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

Category:

- Lists of software

Hidden category:

- Pages or sections flagged with Template:Expansion