Как я могу очистить корзину с помощью терминала?


241

Я не могу нигде искать мусор . Можете ли вы сказать мне команду или что-нибудь подобное, чтобы очистить корзину с помощью терминала?


2
Это было опубликовано 3 года назад. Нам нужно кое-что, что объясняет это, в том числе и то, для какой версии он работает здесь, в 2017 году
SDsolar,

Ответы:


313

Вы можете использовать команду ˋrmˋ:

 rm -rf ~/.local/share/Trash/*

Команда rm удаляет (удаляет) файлы или каталоги.

-f, --force     Ignore nonexistant files, and never prompt before removing.
-r, -R, --recursive     Remove directories and their contents recursively.

Папка для мусора находится по адресу: $HOME/.local/share/Trash

Будьте осторожны при использовании rmкоманды - файлы не отправляются в мусорное ведро, где вы можете их восстановить, поэтому отменить их нелегко.


10
Это не будет работать, если мусор находится где-то еще.
Брайам

1
@ hellodear2 Обратите внимание, что ~это только специфическая для оболочки вещь, которая расширяется до вашего пути к домашней директории. Использование, например "~/some/path", не будет расширяться из-за цитирования. Аналогично, не все файловые менеджеры поймут, ~если вы введете его в адресную строку.
Руслан

11
Чувствительные системные папки и файлы не могут быть удалены без привилегий и rmвообще не могут удалять папки, если вы не предоставите им -r(или эквивалентную) опцию. Однако использование rmбез надлежащей осторожности может привести к потере важных личных файлов, особенно если они используются с подстановочными аргументами.
Марк ван Леувен

1
@ hellodear2 смотрите этот и этот вопросы для примеров, когда тильда не работает (хотя это касается bash). Я не знаю, какие именно оболочки не поддерживают его, но вы должны понимать, что тильда реализована не на уровне файловой системы, а на уровне приложения. XFE является примером файлового менеджера, который не понимает ~в адресной строке.
Руслан

4
почему это, казалось бы, ок. 100 раз быстрее, чем нажатие мусора "пусто" в любом файловом браузере?
phil294

131

С trash-cliустановленным, вы можете сделать

trash-empty

более интересные подробности об обработке мусора: здесь


6
Это не будет работать из коробки, хотя и требует установки trash-cli .
Скарз

19
Да, но это правильный ответ. Например, если у вас есть USB-накопитель, то файлы, которые вы в нем храните, будут помещены в скрытый каталог в корне устройства (по крайней мере, это произошло в прошлый раз, когда я проверял) .Trash-$UID- так что в этом случае корзина физически находится в два разных места ...
Rmano

Настолько грустно, что вам нужно установить пакет, чтобы очистить корзину. Подсчет мусора на дисковом пространстве - одна из самых раздражающих функций Ubuntu.
Майкл

3
@Michael "Trash" - это функция, предоставляемая менеджером рабочего стола, которая является слоем над материалом, который вы обычно используете в командной строке. На самом деле все, что он делает, - это перемещает файлы в скрытую папку на том же устройстве и сохраняет некоторые метаданные, чтобы их можно было вернуть на место, если пользователь захочет. На самом деле вы не освобождаете место до тех пор, пока не «очистите» корзину, то есть когда файл действительно будет удален.
Симус Коннор

3
Следует отметить, что эта команда зависит от пользователя. Я установил его и чесал голову о том, почему он не работает, пока я не понял, что файлы были в мусорном ведре другого пользователя.
Биллиноа,

52

Вы ищете $XDG_DATA_HOME/Trashкаталог. Каталог корзины определен в «Спецификации мусорной корзины на рабочем столе» сайта freedesktop . Эта переменная обычно недоступна в окнах терминала, поэтому вам потребуется для trash-empty. Эта команда следует всем спецификациям Freedesktop.org, и она достаточно умна, чтобы выяснить, где находится Корзина. Вы должны будете установить это сначала.

Для этого есть другие инструменты, например, gvfs-trash --emptyкоторые также могут отправлять предметы в корзину.


+1 За $XDG_DATA_HOME. Как ты это получил?
Jobin

4
@ Jobin все в спецификации. ramendik.ru/docs/trashspec.html
Брайам

@Braiam Можете ли вы рассказать подробнее? Как я могу использовать это? Я не понимаю, как это решает мою цель. Пожалуйста, объясните немного. И я не хочу выбрасывать вещи, я хочу очистить корзину.
hellodear

2
@ hellodear2 trash-empty очищает мусор . Вам нужно только запустить его. Двоичный файл находится в trash-cliупаковке. Это то же самое, что и решение jhort, только то, что я объясняю, откуда оно берется, и предлагаю другой инструмент.
Брайам

Теперь gio trash --empty, по крайней мере, на Ubuntu 18.10 / Gnome 3.
JB Rainsberger


1

У меня были проблемы с

rm -rf ~/.local/share/Trash/*

Итак, я должен был сделать:

sudo -s
cd ~/.local/share/Trash/  

Прежде чем вводить следующую команду, убедитесь, что вы находитесь в правильном каталоге, потому что таким образом вы можете легко удалить все из своей домашней папки, и не будет никаких предупреждений.

rm -fr *

А потом все прошло ...


Почему sudo и почему rm -rf. Это не нужно.
независимо от того,

1
@mikewh независимо - почему sudo? Поскольку я удалил что-то как суперпользователь, и чтобы очистить его Trash, мне пришлось сделать это, sudoчтобы получить эту привилегию. Просто sudo rm -rf /fullabsolutepathработает в одной команде.
Харви

trash-empty и rm -rf ~ / .local / share / Trash / * не работают, если вы удаляете из корневых папок. Ответ @ Cisum работал лучше всего для меня.
дождь

что это за хрень? Я попробовал это, и все пропало. Все данные ушли из моей системы.
Rajneesh071

2
Интересно, кто проголосовал за это? Это ужасный совет / набор команд и очень опасный, если некоторые запускают las rm -fr *в неправильной папке. Пожалуйста, измените свой ответ и, по крайней мере, используйте полные пути ...
Tanasis
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.