Автоматическое очищение Корзины в Linux с помощью autotrash

Несколько раз в жизни вы наверняка удаляли не тот файл или папку, или удаляли намеренно, а потом вдруг поняли, что они нужны снова. Есть более надёжный способ работать с удалением — не затирать данные навсегда сразу, а дать им «отлежаться» в виртуальной корзине и автоматически очищать только старые элементы. Эта модель уже реализована в Windows 10, на некоторых смартфонах и в некоторых окружениях рабочего стола Linux. Тем не менее многие пользователи не знают о практических преимуществах.
Жёсткое удаление vs Отправка в Корзину
Коротко: оба варианта имеют недостатки. Жёсткое удаление (например, Shift+Delete в проводнике) лишает вас простого способа вернуть файл. На некоторых файловых системах (ext4) восстановление крайне затруднено; на NTFS — немного проще, но всё равно ненадёжно.
Отправка в корзину решает проблему восстановления, но не освобождает место на диске — пока корзина не очищена, файлы занимают место. Пользовательская привычка «удалил — забыл» работает не всегда: часто нужно очистить место, но при этом сохранить возможность быстро вернуть недавно удалённый файл.
Проблема отправки файлов в Корзину
Организационная логика такова: файл должен «постареть» в корзине, прежде чем мы решим, что он действительно не нужен. Если файл в корзине лежит несколько недель и не восстанавливался, велика вероятность, что он не понадобится. Но файлы, отправленные в корзину десять минут назад, часто восстанавливают в считанные минуты.
На Linux есть утилита autotrash, которая автоматизирует удаление только «старых» файлов из корзины — по времени пребывания в ней. Это сочетает удобство корзины и регулярную очистку для освобождения места.
Важно: autotrash опирается на специфику реализации корзины рабочего стола (XDG Trash specification). На нестандартных окружениях или сетевых шары он может работать иначе или не поддерживаться.
Установка и автоматический запуск autotrash при входе в систему
Откройте терминал и установите autotrash (в примере — для Debian/Ubuntu-подобных систем):
sudo apt update &&sudo apt install autotrash
Введите пароль пользователя, подтвердите установку, набрав «y» и нажав Enter.

Далее мы настроим автозапуск команды при входе в сессию рабочего стола. Откройте файл .xsessionrc в текстовом редакторе (пример с nano):
nano ~/.xsessionrcВставьте строку (пример — удалять файлы старше 30 дней):
autotrash -d30&
Объяснение: параметр -d30 указывает возраст в днях (30). Символ & запускает процесс в фоне, чтобы вход в сессию не задерживался если удаляем много файлов.
Сохраните файл: Ctrl+X → y → Enter.
Опционально: чтобы логировать работу autotrash в журнал systemd (если в системе есть systemd и вы используете systemd‑журнал), можно вместо предыдущей строки вставить:
systemd-cat -t autotrash -p info autotrash -v-d30&
Записи в системном журнале будут выглядеть примерно так:

Опции и пояснения
- autotrash -dN или autotrash -dNN: удалить элементы старше N дней. (В статье использован пример -d30.)
- Символ & в командной строке запускает процесс в фоне: полезно при автозапуске.
- При использовании systemd‑журнала systemd-cat позволяет пометить сообщения тегом и уровнем важности.
Примечание: точный набор опций autotrash может варьироваться по версиям в дистрибутивах; при сомнении выполните man autotrash или autotrash –help.
Логирование через systemd: альтернатива автозапуску в .xsessionrc
Если вы предпочитаете более «системный» подход, используйте systemd user‑unit + timer (работает для систем с systemd и поддержкой пользовательских таймеров). Пример конфигурации (поместите в ~/.config/systemd/user/):
Файл: ~/.config/systemd/user/autotrash.service
[Unit]
Description=Запуск autotrash для очистки корзины
[Service]
Type=oneshot
ExecStart=/usr/bin/autotrash -v -d 30Файл: ~/.config/systemd/user/autotrash.timer
[Unit]
Description=Ежедневный запуск autotrash
[Timer]
OnBootSec=5min
OnUnitActiveSec=1d
Persistent=true
[Install]
WantedBy=timers.targetКоманды для включения и запуска таймера:
systemctl --user daemon-reload
systemctl --user enable --now autotrash.timerПлюсы systemd‑таймера: гибкое расписание (OnCalendar, OnUnitActiveSec), устойчивость к перезагрузкам (Persistent), централизованное логирование в journal.
Альтернативные подходы
- Использовать cron: @daily autotrash -d 30 >/dev/null 2>&1 — просто и работает на системах без systemd.
- trash-cli — другая утилита для работы с корзиной из терминала (manipulation, restore, empty).
- В файловом менеджере настроить автоматическую очистку корзины (некоторые DE поддерживают правила старения).
- Системные политики на уровне бэкапа: регулярное резервное копирование позволяет безопасно удалять данные, но не заменяет удобство корзины и «окно» восстановления.
Когда autotrash не сработает или будет нежелателен
- Если корзина реализована нестандартно (не по XDG Trash spec) или находится на сетевой шары с другой логикой хранения.
- На зашифрованных томах, где восстановление или манипуляции зависят от ключей и монтирования.
- Если пользователи ожидают, что удалённые файлы хранятся неопределённо долго (политики компании/архивирование).
Чек‑лист для пользователя и администратора
Для обычного пользователя:
- Установить autotrash через пакетный менеджер.
- Добавить autotrash -dN& в ~/.xsessionrc или настроить systemd timer.
- Проверить работоспособность (ручный запуск autotrash -v -d30).
- При желании включить логирование через systemd-cat.
Для администратора при развёртывании в организации:
- Проверить совместимость окружений рабочего стола (KDE/GNOME/Xfce и поддержка XDG Trash).
- Решить политику «возраста» файлов (N дней) и задокументировать её.
- Подготовить systemd user‑unit или глобальный systemd timer для системных учётных записей, если требуется.
- Создать инструкцию для пользователей и обеспечить канал поддержки при ошибках восстановления.
Критерии приёмки
- autotrash установлен и доступен для пользователей.
- Команда запускается автоматически при входе в систему или через systemd таймер.
- Файлы старше заданного порога (например, 30 дней) удаляются из корзины автоматически.
- Младшие по возрасту файлы остаются в корзине и могут быть восстановлены вручную.
- Логи работы autotrash доступны в journal (если логирование включено).
Сниппеты и шаблоны (cheat sheet)
- Быстрый ручной запуск, подробный режим, 14 дней:
autotrash -v -d14- Cron (ежедневно):
@daily /usr/bin/autotrash -d 30 >/dev/null 2>&1- systemd user unit + timer — см. раздел выше.
Тесты и приёмка: что проверить
- Удалите тестовый файл через файловый менеджер, убедитесь что он попал в ~/.local/share/Trash или эквивалент.
- Запустите autotrash вручную с порогом 0 дней: autotrash -v -d0 — файл должен быть удалён.
- Установите порог 365 дней и убедитесь, что недавно удалённый файл остаётся.
- Проверьте логи: journalctl –user -t autotrash (при использовании systemd-cat).
Заключение
autotrash — простая и надёжная утилита, которая даёт лучшее из двух миров: возможность быстро восстановить недавно удалённые файлы и автоматическую очистку старых элементов корзины для освобождения места. Выберите подходящий способ автозапуска (.xsessionrc, systemd user timer или cron), определите разумный период «старения» и добавьте логирование при необходимости. Через несколько недель вы оцените преимущество такой системы.
Короткие рекомендации:
- Если вы хотите минимальной настройки — вставьте autotrash -d30& в ~/.xsessionrc.
- Для централизованного управления у администраторов — используйте systemd user timer.
- Всегда тестируйте на нескольких учётных записях и окружениях.
Примечание: autotrash автоматизирует удаление корзины, но не заменяет регулярное резервное копирование важных данных.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента