Як сказати, звідки взявся предмет у Кошику?


16

У Mac OS X 10.6 Trash відображається опція "Повернути назад" для файлів, які потрапили в кошик після встановлення 10.6. Однак це не показує, куди файл буде повернутий.

Отже: використовуючи Finder, чи є спосіб сказати, звідки взявся пошкоджений предмет?

(Я знаю, що в оригінальних місцях зберігаються ~/.Trash/.DS_Store , тому якщо мені дійсно потрібно знати, звідки взявся файл, то я можу розібратися в ньому, використовуючи щось на зразок hexdump.)


З цікавості: навіщо вам це потрібно? Якщо ви знаєте, де він був, ви можете просто покласти його назад, а якщо ні, просто перетягніть його зі сміття на робочий стіл і перемістіть його звідти куди завгодно.
brandstaetter

1
Наприклад, якщо два різних пошкоджені документи / папки мають одне ім’я, і я хочу з’ясувати, який елемент відновити. Або якщо хтось випадково видаляє якийсь файл налаштувань, а потім через деякий час я знайду цей невідомий елемент у кошику. (Звичайно, системні файли неможливо видалити, не вказавши пароль адміністратора.) Або якщо я просто побачу дивні файли, які мене дуже цікавлять, де я їх отримав. ;-)
Ар'ян

Щоб розрізнити два документи, ви можете скористатися швидким оглядом.
brandstaetter

1
Як осторонь: приємний натяк на macosxhints.com: 10.6: Встановіть час видалення для файлів, поміщених у кошик, щоб полегшити пошук випадково видалених елементів із кошика на macosxhints.com/article.php?story=20100121075428946
Ар’ян

Відповіді:


3

Ви можете використовувати dsstore_dump.plінструмент, який може читати записи файлових файлів у форматі, прочитаному людиною.

Це частина Mac-Finder-DSStoreпроекту, написаного перлом від Wim L, який надає підпрограми для читання та запису .DS_Storeфайлів, створених ОС 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?


Чи все-таки це працює для нових маків, де dsstore - це новий бінарний формат>?
Pacerier

@Pacerier Так, це працює. Я зараз тестував на 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 ... але я цього не розумію.
Dan

5

Я бачив цю проблему і був заінтригований. Нарешті я написав швидкий інструмент Foundation на основі цієї функції та завернув його у додаток AppleScript.

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

Вставте його на панель інструментів, і він повинен вказати шлях до вибраного елемента. Я не обіцяю. :)

Він не повинен запитувати у вас пароль. Якщо це так, щось дивно. Ви все ще можете відкрити програму за допомогою редактора AppleScript, якщо ви хочете переглянути джерело AppleScript.

Два основних питання:

  • Здається, що Finder періодично оновлює файл .DS_Store, тому він може не працювати для елементів, які ви нещодавно додали до кошика.
  • Одночасно може обробляти лише один предмет.

Це б'є hexdumpточно. :-) І те cocoadev.com/index.pl?ParseDSStoreFiles, безумовно, теж цікаво. Мій Google-Фу погано зірвав мене!
Ар’ян

Я відповів на цю (лише) відповідь, тому що це було дійсно те, що я шукав. Однак здається, що сценарій (а точніше вбудована tipathпрограма) не працює для жодного з файлів у моїй папці Кошик.
мгд

1
Лінк загинув. :( Отримав 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'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.