Як можна спорожнити сміття за допомогою терміналу?


241

Я не можу ніде шукати сміття . Скажіть, будь ласка, команду чи щось подібне, щоб випорожнити сміття за допомогою терміналу?


2
Це було розміщено 3 роки тому. Нам потрібно щось, що це
пояснює

Відповіді:


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 дивіться це і це запитання для прикладів, коли tilde, здається, не працює (хоч про башти). Я не знаю, які конкретні оболонки це не підтримують, але ви повинні розуміти, що тильда реалізована не на рівні файлової системи, а на рівні програми. XFE - приклад файлового менеджера, який не розуміє ~в адресному рядку.
Руслан

4
чому це, здавалося б, бл. У 100 разів швидше, ніж натискання сміття "порожнім" у будь-якому файловому браузері?
Blauhirn

131

З trash-cliвстановленим, ви можете зробити

trash-empty

ще цікаві подробиці щодо поводження зі сміттям: Тут


6
Однак це не вийде, і вимагає встановлення кошика .
skarz

19
Так, але це правильна відповідь. Наприклад, якщо у вас є USB-накопичувач, наприклад, файли, які ви знаходите в ньому, будуть поміщені в приховану папку в корені пристрою (принаймні, це сталося востаннє, коли я перевірив) .Trash-$UID- так що в цьому випадку сміття фізично знаходиться в два різних місця ...
Рмано

Настільки сумно, що вам доведеться встановити пакет просто, щоб випорожнити сміття. Підрахунок сміття до місця на диску - одна з найприємніших особливостей Ubuntu.
Майкл

3
@Michael "Кошик" - це функція, яку надає менеджер робочого столу, що є шаром над матеріалами, які ви зазвичай використовуєте в командному рядку. Дійсно, це лише перемістити файли в приховану папку на одному пристрої та зберегти деякі метадані, щоб вони могли бути поставлені на місце, якщо користувач хотів би. Ви фактично не повертаєте жодного місця, поки не "випорожните" кошик, тобто коли файл фактично видалено.
Seamus Connor

3
Слід зазначити, що ця команда є специфічною для користувача. Я встановив це і чухав голову про те, чому це не працює, поки я зрозумів, що файли знаходяться на смітнику іншого користувача.
billynoah

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 Чи можете ви більше деталізувати? Як я можу ним користуватися? Я не розумію, як це вирішує мою мету. Будь ласка, поясніть трохи. І я не хочу виносити речі, я хочу спорожнити її.
привіт

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 *

А далі все пропало ...


Чому судо, і чому rm -rf. Це зайве.
щоденно

1
@mikewwhat - чому sudo? Через те, що я видалив щось як суперпользователь, і щоб випорожнити це Trash, я повинен був зробити sudoцей привілей. Просто sudo rm -rf /fullabsolutepathпрацює в одній команді.
Харві

trash-empty і rm -rf ~ / .local / share / Trash / * не працюють, якщо ви видаляєте з кореневих папок. @ Відповідь Сісума найкраще працювала для мене.
дощ

wtf це? Я спробував це, і все пропало. Всі дані пішли з моєї системи.
Rajneesh071

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