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。