如何通过终端删除到垃圾箱(使用 mv 命令)?

αғs*_*нιη 4 command-line trash mv

我想知道如何使用mv命令删除文件和/或将其移至垃圾箱?

我知道垃圾箱所在的位置,然后我尝试使用以下命令将其移至垃圾箱:

mv somefile /home/username/.local/share/Trash
Run Code Online (Sandbox Code Playgroud)

这个命令工作正常,但是当我在启动器中打开垃圾箱时它仍然显示为空。我可以使用以下命令在原始位置撤消此已删除文件:

mv /home/username/.local/share/Trash/somefile ~/
Run Code Online (Sandbox Code Playgroud)

但是如果这个位置/home/username/.local/share/Trash不是用于垃圾箱,那么我的文件移动到哪里了?

我知道rm将永久删除文件而不是将其发送到垃圾箱文件夹,并且没有标志man rm可将文件删除到垃圾箱。

ste*_*ver 12

您可以使用gvfs-trash代替mv

gvfs-trash somefile
Run Code Online (Sandbox Code Playgroud)

将文件移动到 ~/.local/share/Trash 后无法看到文件的原因是下面还有一个额外的目录结构,即

  • ~/.local/share/Trash/files包含实际的垃圾文件;和
  • ~/.local/share/Trash/info 包含元数据,例如原始位置

虽然你可以使用

mv somefile ~/.local/share/Trash/files
Run Code Online (Sandbox Code Playgroud)

在这种情况下somefile 在垃圾桶中可见Restore,由于缺少info元数据,将无法使用 nautilus/gvfs功能来取消删除文件- 您需要知道并手动mv将文件移至其原始位置。从这个意义上说,只有gvfs-trash确切的命令行相当于通过 nautilus 删除文件。

  • 还要注意,`gvfs-trash` 优雅地处理了将两个具有相同名称的独立文件发送到垃圾箱的情况,但是使用 `mv` 第一个“垃圾”这样的文件将不可逆转地消失。 (8认同)

Pan*_*dya 11

垃圾目录的相关资料:

~/.local/share/Trash包含两个名为info和 的目录files

  • ~/.local/share/Trash/files 包含原始文件。
  • ~/.local/share/Trash/info包含文件(扩展名:).trashinfo,其中包含有关文件路径和删除日期的信息。

因此,如果要使用mv命令,请遵循以下命令:

mv somefile ~/.local/share/Trash/files
Run Code Online (Sandbox Code Playgroud)

但不建议使用上述方法将文件移至垃圾箱。(如评论here


您可以trash-cli通过以下命令安装垃圾命令行:

sudo apt-get install trash-cli
Run Code Online (Sandbox Code Playgroud)

这里有可用的垃圾命令:

$ apropos trash
gvfs-trash (1)       - Move files or directories to the trash
restore-trash (1)    - Restore for Command line trash utility.
trash (1)            - Command line trash utility.
trash-empty (1)      - Empty for Command line trash utility.
trash-list (1)       - List trashed files.
trash-put (1)        - Command line trash utility.
Run Code Online (Sandbox Code Playgroud)

您可以通过以下命令将文件移动/放入垃圾箱:

  1. trash-put somefiles
  2. 或者 gvfs-trash somefiles

通过命令列出垃圾箱: 通过命令恢复文件: 通过命令清空垃圾箱:trash-list
restore-trash
trash-empty

另请访问问题。

  • 我永远不会建议某人使用 `mv` 命令将文件移动到垃圾箱。请参阅 [此评论](http://askubuntu.com/questions/523906/how-to-delete-to-trash-via-terminal-with-mv-command/523909#comment714919_523906) 了解原因。 (4认同)