Невозможно удалить файл из корзины, который был помещен туда как root

Я знаю об опасностях использования корневого доступа, поэтому, пожалуйста, воздержитесь от лекций. Я стараюсь быть осторожным и теперь буду вдвойне.

Я использовал файловый браузер с root-доступом, чтобы изменить некоторые права доступа к файлам. В ходе процесса я удалил некоторые файлы (я должен сказать, что я их в корзину). Мало ли я знал, что файлы будут отправлены в корзину как root, и теперь я не могу удалить их, потому что у меня нет разрешения на их чтение, но я не знаю, как получить к ним доступ, чтобы изменить разрешения, потому что я не могу не знаю, как попасть в корзину как root. Все, что я получаю, это сообщение о том, что:

Это местоположение не может быть отображено.

К сожалению, не удалось отобразить все содержимое trash:///: Операция не поддерживается

Я искал вокруг, чтобы попытаться найти сообщения об этом, но я нашел только устаревшую информацию о скрытом файле в корневом каталоге. Кажется, это больше не применимо, поэтому я застрял с файлом в корзине, который не могу удалить и не могу получить к нему доступ.

Я использую Ubuntu 14.04 64bit на ноутбуке ASUS x401a.

6 ответов

Чтобы удалить эти файлы, вам понадобится root-доступ к корзине. Самый простой способ сделать это во временном смысле - это открыть окно терминала alt+ctrl+t и ввести команду

gksudo nautilus /home/your_username/.local/share/Trash

Это запустит файловый менеджер с правами суперпользователя, и вы сможете очистить корзину отсюда. Удалить корневой файл.

Когда вы закончите, не забудьте закрыть программу!

Если вы хотите удалить все содержимое корзины, вы можете использовать sudo и удалить весь каталог. Не забудьте переделать каталог, чтобы он не вызывал никаких проблем. Код является:

sudo rm -rf /home/User_Name/.local/share/Trash && mkdir /home/User_Name/.local/share/Trash

Это будет делать все с одним входом в терминал.

Я лично очень часто пользуюсь trash-cli. Я использую это как альтернативу rm быть в безопасности (например, trash -r my-folder).

sudo apt install trash-cli

После установки вы можете сделать

sudo trash-empty

Запустите это в вашем cmd

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

Используйте терминал!1eleven (перетаскивание)

  • Откройте терминал с помощью Ctrl+Alt+t.
  • Чтобы снова стать владельцем файлов и продолжить работу с файловым менеджером, введите команду sudo chown -R $USER:$USER и убедитесь, что в конце есть место.
  • Теперь перетащите соответствующий файл или папку из вашего файлового менеджера в терминал.

    • Результат должен выглядеть так:

      sudo chown -R $USER:$USER '/home/$USER/.local/share/Trash/files/some_file.txt'
      

      или это:

      sudo chown -R $USER:$USER '/media/$USER/path to external drive/.Trash-1000/files/sömё fïle thät may have fancy encodings, ſpaces & stuf.txt'
      

      где $USER обозначает ваше имя пользователя в пути.

  • Запустите команду, нажав Enter, и, возможно, обновите представление с помощью F5 в файловом менеджере.

  • Как отметил Дэвид Фёрстер, вы можете заменить апострофы кавычками, чтобы иметь расширение переменной оболочки.

Использование терминала с файлами не так сложно, когда работает перетаскивание, не так ли? ^^ Это очень удобная функция, когда вы знаете, как ее использовать.

Кроме того, вы можете удалить отдельные файлы с rm, Удаление папок может быть сделано с rmdir для пустых папок или rm -r для рекурсивного удаления файлов и папок. В то время как метод перетаскивания должен работать почти во всех случаях и правильно избегать всего, что вы все равно должны быть осторожны при использовании команд удаления. Владение файлами и их удаление в вашем файловом менеджере является более безопасным решением.

связанные с

Если у вас есть midnight commander установлен, вы можете открыть его с помощью sudo:

sudo mc 

идти к:

~/.local/share/Trash/

и используйте alt + F6, чтобы удалить нужные файлы.

TL;DR: установить trash-cli и выполните:

sudo HOME=/home/<hour-home-dir> trash-empty

Почему другие решения неверны? Они делятся на две категории:

  1. Удалить все в корзине
  2. Запустите команду, которая на самом деле делает что-то другое, чем запросил OP

Решения типа 1 неверны, потому что папка корзины имеет структуру, которую нельзя изменять напрямую. То, что им управляет, хранит там небольшую базу данных. Если вы удалите эту базу данных, вы рискуете полностью нарушить работу корзины. Это может быть не так в настоящее время, но может стать таковым в любой момент в будущем.

Решение типа 2: sudo trash-empty, который очищает корзину root вместо "вашей". Без sudo, это приведет к исходной проблеме.

Другие вопросы по тегам