如何判断垃圾箱中的物品来自哪里?

如何判断垃圾箱中的物品来自哪里?

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 

有关的:我如何检查 .Trash 中的文件是从哪里删除的?

答案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'

相关内容