Где находится папка «Корзина» в Ubuntu/Windows (WSL)?

Где находится папка «Корзина» в Ubuntu/Windows (WSL)?

Я используюUbuntu в Win10, но я не могу найти папку «Корзина», даже когда использую команду

mv ~/.Trash/foo ~/
mv: cannot stat '/home/man/.Trash/foo': No such file or directory

У меня вопрос: как открыть папку «Корзина» в Ubuntu/Win10?

решение1

Мусорнаходится в ~/.local/share/Trash, по крайней мере в Ubuntu. ~/.local– или, точнее, ~/.local/share– это место, где программы, совместимые с XDG, хранят пользовательские данные (например, шрифты, почтовые сообщения) в соответствии сСпецификация базового каталога XDG.

Ubuntu на WSL предоставляет вам толькотерминал и отсутствие графического интерфейса по умолчанию.

Всякий раз, когда файл удаляется из графического файлового менеджера в Ubuntu, например Nautilus или Thunar, он фактически перемещается в ~/.local/share/Trash. Файлы обычно удаляются с помощью rmтерминала, которыйне делаетдвигатьсяих в папку «Корзина».

Таким образом, в WSL нет папки «Корзина», если вы не используете графический файловый менеджер Linux.

решение2

У меня в WSL (Ubuntu-20.04) не было папки ~/.local/share/Trash. Я следовал инструкциям здесь (https://github.com/sindresorhus/trash) и установлен trashи trash-cliс npm.

Такие вещи сейчас работают!

[username@host]$ tldr trash
trash
A CLI for managing your trashcan / recycling bin.More information: https://github.com/andreafrancia/trash-cli.

 - Delete a file (send to trash):
   trash {{path/to/file}}

 - List files in trash:
   trash-list

 - Restore file from trash:
   trash-restore

 - Empty trash:
   trash-empty

 - Empty trash, keeping files trashed less than {{10}} days ago:
   trash-empty {{10}}

 - Remove all files named 'foo' from the trash:
   trash-rm foo

 - Remove all files with a given original location:
   trash-rm {{/absolute/path/to/file_or_directory}}

Кончик:https://github.com/tldr-pages/tldrдействительно классный инструмент для получения практических примеров команд, которых обычно нет на страницах руководств.

решение3

Папка Trash в Ubuntu обычно предоставляется gio(Gnome IO) и GVfs (виртуальная файловая система Gnome). Хотя такие приложения, как Nautilus, используют GVfs для доступа к корзине, это также можно сделать напрямую из командной строки на WSL или Ubuntu Server, без какого-либо графического интерфейса, используя gioинструмент командной строки.

ЭтоделаетОднако для этого требуется сеанс пользователя D-Bus, который не запускается автоматически в WSL, поскольку (a) отсутствует Systemd и (b) отсутствует концепция «входа в систему», во время которой можно было бы запускать пользовательские службы.

Хотя gioи D-bus установлены по умолчанию в дистрибутиве WSL Ubuntu, вам необходимо добавить пакет gvfs(по крайней мере, в WSL):

sudo apt install gvfs

Затем вам нужно запустить вашу оболочку с поддержкой D-Bus. Это можно сделать несколькими способами, но, возможно, лучшим вариантом будет изменить команду запуска WSL (в Windows Terminal или где-то еще) на:

wsl ~ -e dbus-launch bash # Or your preferred shell

На этом этапе вы можете использовать Trash из командной строки WSL. Пример:

touch "a test file"
gio trash "a test file"
gio list Trash://
ls -lah ~/.local/share/Trash/files
gio trash --empty
gio list Trash://
ls -lah ~/.local/share/Trash/files

Связанный контент