%3F.png)
Я использую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