从终端将文件移动到 Snow Leopard 上的垃圾箱

从终端将文件移动到 Snow Leopard 上的垃圾箱

Snow Leopard 允许用户“放回”已从 Finder 移至废纸篓的文件。但是,当我mv <file> ~/.Trash从命令行执行此操作时,没有看到“放回”选项。

Snow Leopard 中是否有一个本机命令可以将文件移至垃圾箱,同时仍然允许我“放回”?

答案1

当您将文件移至废纸篓时,OS X 会使用“放回”信息更新.DS_Store其中的文件。(请参阅~/.Trash这个问题了解更多详情

为了更新这个,您还必须.DS_Store在将文件移动到终端中的垃圾箱时更新该文件。

答案2

我建议安装 Ruby gemosx-垃圾

如何?

sudo gem install osx-trash

用法?

Usage: trash [OPTIONS] <file> [<file> ...]
       trash [-e | --empty]
       trash [-l | --list]
Specific options:
    -e, --empty                      Empty the trash
    -l, --list                       List items in the trash
    -h, --help                       Show this message
    -v, --version                    Show version

Manipulate to the Finder's trash.

答案3

在 MacOSX SDK 中有以下函数FSPathMoveObjectToTrashSync和相关内容。应该很容易围绕它编写 Python(或其他)脚本。

编辑:刚刚编码。可以在这里找到:rm-垃圾.py

答案4

在研究了替代方案后,我发现:

  • rmtrash 程序不使用系统 API 将文件移动到垃圾目录,因此.DS_Store 文件将不会更新。另外,不会触发回收声音。
  • Python 脚本调用了 Mountain Lion 上已弃用的方法,该方法也不会触发回收声音。
  • ruby 脚本可以运行,但是很慢(像 python 脚本一样)。

所以我写了我自己的垃圾命令实施于Nimrod 编程语言,速度很快它会在后台进程中触发垃圾桶声音。这意味着输入命令并运行它会立即退出,因为它不需要等待声音播放。缺点是你需要编译 nimrod,然后编译这个程序(抱歉,没有二进制文件!)。

PS:说实话,最好的实现是使用我从 Nimrod 使用的官方 API 来执行 rmtrash,这是普通的 Objective-C

相关内容