Mac OS X 10.6 垃圾桶显示“恢复”选项,用于安装 10.6 后删除的文件。但是,它不显示在哪里该文件将被放回。
那么:使用 Finder,有没有办法知道被丢弃的项目来自哪里?
(我知道原来的位置存储在 ~/.Trash/.DS_Store
,所以如果我真的需要知道文件来自哪里,那么我可以使用类似的方法来弄清楚hexdump
。)
答案1
您可以使用dsstore_dump.pl
可以以人类可读的格式读取存储文件记录的工具。
这是Mac-Finder-DSStore
用 perl 编写的项目维姆·L.DS_Store
它提供了读取和写入OS X 生成的文件的例程。另请参阅:dsstore_dump.pl
在 GitHub 和我的叉。
使用示例:
$ perl dsstore_dump.pl ~/.Trash/.DS_Store
&makeEntries("foo.png",
ptbL => "Users/username/Desktop/",
ptbN => "foo.png"
),
此工具的安装在 README 文件中介绍。
您还可以在终端中使用以下单行命令运行上述脚本:
perl <(curl -s https://raw.githubusercontent.com/kenorb/binfiles/master/dsstore_dump.pl) ~/.Trash/.DS_Store
答案2
我看到了这个问题,很感兴趣。我最终基于以下代码编写了一个快速的 Foundation 工具:此功能并将其包装在 AppleScript 应用程序中。
http://dl.getdropbox.com/u/896591/PathForTrashItem.zip
将它粘贴到工具栏中,它会告诉您所选项目的路径。我不做任何承诺。:)
它不应该要求您输入密码。如果要求,则有些奇怪。如果您想查看 AppleScript 源代码,您仍然可以使用 AppleScript 编辑器打开该应用程序。
两个主要问题:
- Finder 似乎会定期更新 .DS_Store 文件,因此它可能会失败您最近添加到垃圾箱的项目。
- 它每次只能处理一个项目。
答案3
这里有一篇很棒的文章和一些更简单的解决方案http://ponderthebits.com/2017/01/mac-dumpster-diving-identifying-deleted-file-references-in-the-trash-ds_store-files-part-1/
包括此终端单行命令将.DS_Store
文件转换为(大部分)文本:
xxd -p <path/to/.DS_Store> | sed 's/00//g' | tr -d '\n' | sed 's/\([0-9A-F]\{2\}\)/0x\1 /g' | xxd -r -p | strings | sed 's/ptb[LN]ustr//g'