Работа с корзиной в консоли с помощью trash-cli

Введение

Концепция корзины для перемещения туда ненужных файлов широко распространена в графических средах, но значительно реже используется в консоли, хотя полезность корзины и там я бы не назвал надуманной. Как это часто бывает, вопрос легко решается установкой нужного пакета — в нашем случае написанного на Python trash-cli. Эта статья представляет собой короткий обзор этого консольного приложения.

Совместимость

trash-cli предоставляет аналогичный графическим инструментам способ работы с файловой корзиной вместо безвозвратного как в rm (на самом деле не совсем безвозвратного, см. например shred). Эта программа совместима с FreeDesktop.org Trash Specification, а значит использует тот же механизм файловой корзины, что и графические окружения рабочего стола GNOME, KDE, XFCE и другие. GitHub репозиторий этого полезного приложения — https://github.com/andreafrancia/trash-cli (4.1k звёзд!).

Установка

Описана в https://github.com/andreafrancia/trash-cli?tab=readme-ov-file#installation. Кратко — для начала попробуйте установку из пакетного менеджера (apt/yum/dnf/pacman/…), а если в наличии не окажется — просто pip install trash-cli, исполняемые файлы появятся в ~/.local/bin/.

Основные операции

Далее приведу примеры основных операций, доступных в trash-cli.

Перемещение файла в корзину

Создадим 3 ненужных файла:

И теперь уберём их в корзину:

У trash есть синоним — trash-put, кому-то он может быть удобнее.

В отличие от rm, никаких особых хитростей при работе с директориями нет, просто укажите имя директории и она будет перемещена в корзины со всем содержимым.

Вывод содержимого корзины

Проверим содержимое корзины (предварительно я очистил корзину, освободил 3 GB 😀):

И для демонстрации совместимости с GNOME — вот те же самые файлы, отображаемые через графический интерфейс:

Восстановление файла из корзины

Если мы случайно что-то удалили — используем trash-restore:

Как видно, можно указать и только имя файла и полный путь расположения до удаления. Выглядит странным запрос выбора удаляемого файла из одного доступного варианта вместо простого запроса подтверждения, ну да ладно.

Очистка корзины

Перепроверим содержимое корзины и очистим её:

Здесь есть интересный момент — выбор корзины для удаления. Да, их может быть несколько и при использовании trash например можно передать параметр --trash-dir. В этом же выводе вы можете увидеть реальный путь, лежащий за иконкой мусорки в графическом интерфейсе, что тоже полезно для понимания устройства системы.

Кроме того, можно выборочно «безвозвратно» удалить отдельные файлы из корзины с помощью trash-rm, подробнее см. man trash-rm.

Заключение

На этом всё, программа простейшая, но полезность её я бы оценил очень высоко, пользуюсь уже много лет. А аналогов каких графических инструментов вам не хватает в консоли?