# Install trash-cli with Homebrew, apk, apt, dnf, Nix, pacman, zypper

Command-line interface to the freedesktop.org trashcan. Version 0.24.5.26 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:trash-cli
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install trash-cli
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add trash-cli
```

  Evidence: Alpine Linux edge package indexes: trash-cli from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install trash-cli
```

  Evidence: Debian stable package indexes: trash-cli from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install trash-cli
```

  Evidence: Fedora Rawhide package metadata: trash-cli from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#trash-cli
```

  Evidence: nixpkgs package indexes: pkgs/by-name/tr/trash-cli/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S trash-cli
```

  Evidence: Arch Linux sync databases: trash-cli from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install trash-cli
```

  Evidence: openSUSE Tumbleweed package metadata: trash-cli from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

## Package facts

- **Package key:** brew:trash-cli
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/trash-cli>
- **Version:** 0.24.5.26
- **Source summary:** Command-line interface to the freedesktop.org trashcan
- **Homepage:** <https://github.com/andreafrancia/trash-cli>
- **Repository:** <https://github.com/andreafrancia/trash-cli>
- **Upstream docs:** <https://github.com/andreafrancia/trash-cli#readme>
- **License:** GPL-2.0-or-later
- **Source archive:** <https://files.pythonhosted.org/packages/f7/6c/d51b36377c35e4f9e69af4d8b61a920f26251483cdc0165f5513da7aefeb/trash_cli-0.24.5.26.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- trash-empty (cli)
- trash-list (cli)
- trash-put (cli)
- trash-restore (cli)
- trash-rm (cli)
- trash-empty (alias)
- trash-list (alias)
- trash-put (alias)
- trash-restore (alias)
- trash-rm (alias)

## Dependencies

- python@3.14

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.24.5.26
- Local data: ok
- Upstream repository: https://github.com/andreafrancia/trash-cli
- info: No package-manager update timestamp was available.
- info: No cached GitHub release or tag data was available.
## Project history and usage

trash-cli is a Python command-line interface to the freedesktop.org trash can. Its README describes a suite of commands for moving files to trash, listing trashed files, restoring them, emptying trash, and removing matching trashed entries while preserving metadata such as original path, deletion date, and permissions.

### Project history

The project grew out of the Unix command-line gap between irreversible `rm` and desktop trash implementations. The official README frames trash-cli as a command-line and scripting interface to the same trash can used by KDE, GNOME, and XFCE, making desktop-style file recovery available from shells and scripts.

GitHub repository metadata identifies `andreafrancia/trash-cli` as an official source repository created in 2011, while the README examples still show older usage dates from 2007 and 2008. The project has continued to publish tagged versions and maintain Python packaging instructions, with the README recommending pipx or pip, source installs from Git, and distro package managers.

### Adoption history

trash-cli moved from being a convenience wrapper for freedesktop.org trash semantics into a broadly packaged Unix utility. The official README lists package-manager installation commands for Debian/Ubuntu, Arch Linux, and Fedora, and the batch input additionally records availability in Homebrew, apk, Debian, dnf, MacPorts, Nix, pacman, Ubuntu, and zypper.

The package's adoption is tied to cross-desktop Linux behavior: by using the freedesktop.org trash location and metadata model, it fits systems where graphical file managers and command-line tools need to see the same trash state.

### How it is used

Typical use is replacing ad hoc destructive cleanup with explicit trash operations: `trash-put` sends files or directories to the trash, `trash-list` supports shell filtering, `trash-restore` interactively restores entries, `trash-empty` clears trash or old entries, and `trash-rm` removes trashed files matching patterns.

The README explicitly warns against aliasing `rm` directly to `trash-put` because the commands have different semantics, including directory handling. Instead it suggests using shell aliases that remind users not to run `rm`, and it documents cron-based automatic deletion with `trash-empty 30`.

### Why package nerds care

For package-manager users, trash-cli is the portable Linux answer to safer deletion from scripts and terminals. It matters because it integrates with the desktop trash standard rather than inventing a private holding directory, so it can be packaged once and behave consistently across common Unix desktops.

The formula is also a good example of a small CLI whose executable surface is intentionally split into subcommands, making it easy for downstream packagers and shell users to expose focused tools instead of one large interactive program.

### Timeline

- 2007-2008: README examples show early trash-list and trash-empty workflows.
- 2011: Official GitHub repository metadata records creation of `andreafrancia/trash-cli`.
- 2020s: README documents pipx, pip, Git source installs, and distribution package-manager installs.

### Related projects

- Related to freedesktop.org trash implementations used by KDE, GNOME, and XFCE.
- Contrasts with `rm`, which permanently unlinks files rather than recording trash metadata for recovery.
- Complements macOS-specific tools such as Ali Rantakari's `trash`, which targets Finder and macOS Trash behavior.

### Sources

- Batch input fields: source_facts.description, source_facts.executables, source_facts.package-manager
- Official GitHub repository metadata: https://github.com/andreafrancia/trash-cli
- Official README: https://github.com/andreafrancia/trash-cli#readme


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** trash-cli
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Conflicts With:** macos-trash, osx-trash, trash
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** yes
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - trash-cli - 0.24.5.26-0.3: normalized package name match | Debian stable package indexes: trash-cli from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | command line trashcan utility | https://github.com/andreafrancia/trash-cli
- Nix - trash-cli: normalized package name match | nixpkgs package indexes: pkgs/by-name/tr/trash-cli/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - trash-cli - 0.23.11.10-1: normalized package name match | Ubuntu 24.04 LTS package indexes: trash-cli from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | command line trashcan utility | https://github.com/andreafrancia/trash-cli
- apk - trash-cli - 0.24.5.26-r1: normalized package name match | Alpine Linux edge package indexes: trash-cli from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Command line interface to the freedesktop.org trashcan | https://github.com/andreafrancia/trash-cli
- apk - trash-cli-doc - 0.24.5.26-r1: normalized package name match | Alpine Linux edge package indexes: trash-cli-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Command line interface to the freedesktop.org trashcan (documentation) | https://github.com/andreafrancia/trash-cli
- apk - trash-cli-pyc - 0.24.5.26-r1: normalized package name match | Alpine Linux edge package indexes: trash-cli-pyc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Precompiled Python bytecode for trash-cli | https://github.com/andreafrancia/trash-cli
- dnf - trash-cli - 0.24.5.26-20.fc45: normalized package name match | Fedora Rawhide package metadata: trash-cli from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Command line interface to the freedesktop.org trashcan | https://github.com/andreafrancia/trash-cli
- pacman - trash-cli - 0.24.5.26-3: normalized package name match | Arch Linux sync databases: trash-cli from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Command line trashcan (recycle bin) interface | https://github.com/andreafrancia/trash-cli
- zypper - trash-cli - 0.24.5.26-1.4: normalized package name match | openSUSE Tumbleweed package metadata: trash-cli from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Command line interface to the freedesktop.org trashcan | https://github.com/andreafrancia/trash-cli


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Runtime dependency declared by Homebrew.
- [gtrash](https://www.automicvault.com/pkg/brew/gtrash/) - Shares av.db curated category or tags: cli, file-management, freedesktop, system, trash.
- [gomi](https://www.automicvault.com/pkg/brew/gomi/) - Shares av.db curated category or tags: cli, file-management, system, trash.
- [rmtrash](https://www.automicvault.com/pkg/brew/rmtrash/) - Shares av.db curated category or tags: cli, file-management, system, trash.
- [rmw](https://www.automicvault.com/pkg/brew/rmw/) - Shares av.db curated category or tags: cli, file-management, system, trash.
- [ddh](https://www.automicvault.com/pkg/brew/ddh/) - Shares av.db curated category or tags: cli, file-management, system.
- [g-ls](https://www.automicvault.com/pkg/brew/g-ls/) - Shares av.db curated category or tags: cli, file-management, system.
- [gaffitter](https://www.automicvault.com/pkg/brew/gaffitter/) - Shares av.db curated category or tags: cli, file-management, system.
- [mmv](https://www.automicvault.com/pkg/brew/mmv/) - Shares av.db curated category or tags: cli, file-management, system.
- [trash-cli](https://www.automicvault.com/pkg/npm/trash-cli/) - Same normalized package name appears in another local ecosystem. Shared terms: file, trash, trash-cli.
- [trash-cli](https://www.automicvault.com/pkg/npm/trash-cli/) - Same normalized package name in another local ecosystem.

## Combined YAML source

View the package source record on GitHub. [combined/trash-cli.yml](https://github.com/automic-vault/db/blob/main/combined/trash-cli.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
