จะทราบได้อย่างไรว่ารายการในถังขยะมาจากไหน


16

ถังขยะ Mac OS X 10.6 แสดงตัวเลือก "ใส่กลับ" สำหรับไฟล์ที่ถูกทิ้งหลังจากติดตั้ง 10.6 อย่างไรก็ตามจะไม่แสดงตำแหน่งที่ไฟล์จะถูกนำกลับไปใช้

ดังนั้นการใช้ Finder มีวิธีใดบ้างที่จะบอกว่ารายการถังขยะมาจากไหน

(ฉันรู้ว่ามีการจัดเก็บ ตำแหน่งดั้งเดิมไว้~/.Trash/.DS_Storeดังนั้นถ้าฉันต้องการทราบว่าไฟล์มาจากไหนฉันสามารถเข้าใจได้โดยใช้สิ่งที่ชอบhexdump)


ด้วยความอยากรู้: ทำไมคุณถึงต้องการมัน ถ้าคุณรู้ว่ามันอยู่ที่ไหนคุณก็สามารถเอามันกลับมาและถ้าไม่ก็แค่ลากมันออกจากถังขยะลงบนเดสก์ท็อปแล้วย้ายจากตรงนั้นทุกที่ที่คุณต้องการ
brandstaetter

1
ตัวอย่างเช่นหากเอกสาร / โฟลเดอร์ที่อยู่ในถังขยะที่แตกต่างกันสองรายการมีชื่อเหมือนกันและฉันต้องการทราบว่าจะเรียกคืนรายการใด หรือถ้ามีคนลบแฟ้มการตั้งค่าบางอย่างโดยไม่ตั้งใจแล้วบางครั้งในภายหลังฉันพบรายการที่ไม่รู้จักในถังขยะ (แน่นอนไม่สามารถลบไฟล์ระบบโดยไม่ต้องใส่รหัสผ่านของผู้ดูแลระบบ) หรือถ้าฉันเพิ่งเห็นไฟล์แปลก ๆ บางอย่างซึ่งทำให้ฉันอยากรู้ว่าฉันหามาได้จากที่ไหน ;-)
Arjan

หากต้องการแยกความแตกต่างระหว่างเอกสาร 2 รายการคุณสามารถใช้การค้นหาด่วน
brandstaetter

1
คำแนะนำดี ๆ บน macosxhints.com: 10.6: กำหนดเวลาลบสำหรับไฟล์ที่อยู่ในถังขยะเพื่อให้ง่ายต่อการดึงรายการที่ถูกลบโดยไม่ตั้งใจจากถังขยะที่macosxhints.com/article.php?story=20100121075428946
Arjan

คำตอบ:


3

คุณสามารถใช้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 

ที่เกี่ยวข้อง: ฉันจะตรวจสอบว่าไฟล์ใน. ถังขยะถูกลบออกจากที่ไหน?


สิ่งนี้ยังใช้ได้กับ mac รุ่นใหม่ที่ dsstore เป็นรูปแบบไบนารี่ใหม่> หรือไม่
Pacerier

@Pierier ใช่มันใช้งานได้ ฉันได้ทำการทดสอบบน macOS Sierra แล้ว
kenorb

เย็น. ฉันจะดาวน์โหลดและใช้งานจริงได้อย่างไร
Pacerier

@Pacerier ฉันได้รวมหนึ่งสายการบินที่คุณสามารถคัดลอกและวางลงในเทอร์มินัลของคุณ
kenorb

@kenorb ขอบคุณสำหรับสิ่งนี้ฉันพยายามเรียกใช้ แต่ฉันได้รับ "ไม่พบ Mac / Finder / DSStore / BuddyAllocator.pm ใน @INC" - และไม่พบ README และไม่รู้อะไรเกี่ยวกับ Perl [ภายหลัง ... ] พบ README ที่cpansearch.perl.org/src/WIML/Mac-Finder-DSStore-1.00/README ... แต่ฉันไม่เข้าใจ
ด่าน

5

ฉันเห็นปัญหานี้และรู้สึกทึ่ง ฉันลงเอยด้วยการเขียนเครื่องมือพื้นฐานอย่างรวดเร็วโดยใช้ฟังก์ชั่นนี้แล้วห่อไว้ในแอปพลิเคชัน AppleScript

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

ติดไว้ในแถบเครื่องมือของคุณและควรบอกเส้นทางสำหรับรายการที่เลือก ฉันไม่มีสัญญา :)

ไม่ควรถามรหัสผ่านของคุณ ถ้าเป็นเช่นนั้นสิ่งที่แปลก คุณยังสามารถเปิดแอปพลิเคชันด้วย AppleScript Editor หากคุณต้องการดูที่แหล่ง AppleScript

สองประเด็นหลัก:

  • Finder ดูเหมือนจะอัปเดตไฟล์. DS_Store เป็นระยะดังนั้นอาจล้มเหลวสำหรับรายการที่คุณเพิ่งเพิ่มในถังขยะ
  • สามารถจัดการได้ครั้งละหนึ่งรายการเท่านั้น

นั่นเต้นhexdumpแน่นอน :-) และcocoadev.com/index.pl?ParseDSStoreFilesก็น่าสนใจเช่นกัน Google-Fu ของฉันทำให้ฉันแย่มาก!
Arjan

ลงทะเบียนตอบคำถามนี้เท่านั้น (เพราะ) มันเป็นสิ่งที่ฉันกำลังมองหา อย่างไรก็ตามดูเหมือนว่าสคริปต์ (หรือค่อนข้างฝังตัวtipathโปรแกรม) ไม่ทำงานกับไฟล์ใด ๆ ในโฟลเดอร์ถังขยะของฉัน
mgd

1
ลิงค์เสียชีวิต :( Got GitHub?
Cees Timmerman

@Benjamin นี้ยังใช้งานได้กับ mac รุ่นใหม่ที่ dsstore เป็นรูปแบบไบนารีใหม่หรือไม่?
Pacerier

2

มีการเขียนที่ดีขึ้นและการแก้ปัญหาบางอย่างได้ง่ายขึ้นโพสต์ที่เป็น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'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.