題 如何判斷垃圾箱中的物品來自哪裡?


Mac OS X 10.6 Trash為安裝10.6後被刪除的文件顯示“放回”選項。但是,它沒有顯示 哪裡 該文件將被放回去。

所以:使用Finder,有什麼方法可以告訴一個被破壞的項目來自哪裡?

(我知道原來的位置 存儲在  ~/.Trash/.DS_Store,所以如果我真的需要知道一個文件來自哪裡,那麼我可以用類似的東西搞清楚 hexdump。)


14
2017-10-23 10:49


起源


出於好奇:你為什麼需要那個?如果您知道它在哪裡,您可以簡單地將其放回原處,如果沒有,只需將其從垃圾箱拖到桌面上,然後將其從那裡移動到任何您想要的位置。 - brandstaetter
例如,如果兩個 不同 已刪除的文檔/文件夾具有相同的名稱,我想確定要還原的項目。或者,如果有人意外刪除了某些設置文件,那麼一段時間後我會在“廢紙簍”中找到該未知項目。 (當然,如果沒有提供管理員密碼,系統文件就無法刪除。)或者,如果我只是看到一些奇怪的文件,這些文件讓我非常好奇我在哪裡獲得這些文件。 ;-) - Arjan
要區分2個文檔,可以使用quicklook。 - brandstaetter
暫且不說:macosxhints.com上的一個很好的提示:10.6:設置刪除垃圾箱中文件的時間, 以便更容易從垃圾箱中檢索意外刪除的項目在 macosxhints.com/article.php?story=20100121075428946 - Arjan
有關: 如何確定當前位於“廢紙簍”中的文件的原始位置? 在Apple SE - kenorb


答案:


我看到了這個問題並且很感興趣。我最終寫了一個基於的快速基礎工具 這個功能 並將其包裝在AppleScript應用程序中。

http://dl.getdropbox.com/u/896591/PathForTrashItem.zip

將其粘貼在工具欄中,它應該告訴您所選項目的路徑。我不做任何承諾。 :)

它不應該要求您提供密碼。如果確實如此,那就是奇怪的。如果要查看AppleScript源代碼,仍可以使用AppleScript編輯器打開應用程序。

兩個主要問題:

  • Finder似乎會定期更新.DS_Store文件,因此最近添加到廢紙簍的項目可能會失敗。
  • 它一次只能處理一個項目。

5
2017-10-24 15:23



那節拍 hexdump 當然。 :-) 然後 cocoadev.com/index.pl?ParseDSStoreFiles 肯定看起來也很有趣。我的Google-Fu讓我很失敗! - Arjan
贊成這個(唯一)答案,因為它真的是我想要的。然而,它似乎是腳本(或者更確切地說是嵌入式的 tipath 程序)不適用於我的垃圾箱文件夾中的任何文件。 - mgd
林克死了。 :(有GitHub? - Cees Timmerman
@Benjamin,這對於dsstore是新二進制格式>的新mac來說是否仍然有用? - Pacerier


您可以使用 dsstore_dump.pl 可以以人類可讀的格式讀取商店文件記錄的工具。

這是其中的一部分 Mac-Finder-DSStore 用perl寫的項目 Wim 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
2018-05-04 19:08



這仍然適用於dsstore是新二進制格式的新mac嗎? - Pacerier
@Pacerier是的,它確實有效。我剛剛在macOS Sierra上測試過。 - kenorb
涼。我如何實際下載和使用它? - Pacerier
@Pacerier我已經包含了一行,你可以復制並粘貼到你的終端。 - kenorb
@kenorb對此感謝,我試圖運行,但我得到“無法在@INC中找到Mac / Finder / DSStore / BuddyAllocator.pm” - 並且找不到README,對perl一無所知。 [稍後......]找到自述文件 cpansearch.perl.org/src/WIML/Mac-Finder-DSStore-1.00/README ......但我不明白。 - Ze'ev


有一個很好的寫作和一些更簡單的解決方案發佈在 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'

0
2017-08-27 22:32