Как определить, откуда пришел товар в корзину?

16

В Корзине Mac OS X 10.6 отображается опция «Отложить» для файлов, которые были удалены после установки 10.6. Тем не менее, он не показывает, куда файл будет возвращен.

Итак, используя Finder, есть ли какой-нибудь способ узнать, откуда произошел мусор?

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

Арьян
источник
Из любопытства: зачем тебе это? Если вы знаете, где это было, вы можете просто положить его обратно, а если нет, просто перетащить его из корзины на рабочий стол и переместить оттуда туда, куда вы хотите.
брэндстеттер
1
Например, если два разных загруженных документа / папки имеют одно и то же имя, и я хочу выяснить, какой элемент восстановить. Или, если кто-то случайно удалит какой-то файл настроек, а затем через некоторое время я найду этот неизвестный элемент в Корзине. (Конечно, системные файлы не могут быть удалены без предоставления пароля администратора.) Или если я просто увижу какие-то странные файлы, которые меня очень интересуют, откуда я их взял. ;-)
Арджан
Чтобы различать 2 документа, вы можете использовать быстрый просмотр.
brandtaetter
1
Помимо этого: хороший совет на macosxhints.com: 10.6: установите время удаления для файлов, помещенных в корзину, чтобы упростить поиск случайно удаленных элементов из корзины на macosxhints.com/article.php?story=20100121075428946
Арджан

Ответы:

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 

Связанный: Как я могу проверить, откуда был удален файл в .Trash?

kenorb
источник
Это все еще работает для более новых macs, где dsstore - новый двоичный формат>?
Pacerier
@Pacerier Да, это работает. Я сейчас тестировал на macOS Sierra.
Кенорб
Здорово. Как мне на самом деле скачать и использовать его?
Pacerier
@Pacerier Я включил однострочник, который вы можете скопировать и вставить в свой терминал.
Кенорб
@kenorb Спасибо за это, я попытался запустить, но я получаю «Не могу найти Mac / Finder / DSStore / BuddyAllocator.pm в @INC» - и не могу найти README, и ничего не знаю о Perl. [Позже ...] Нашел README по адресу cpansearch.perl.org/src/WIML/Mac-Finder-DSStore-1.00/README ... но я этого не понимаю.
Дан
5

Я видел эту проблему и был заинтригован. В итоге я написал быстрый инструмент Foundation, основанный на этой функции, и обернул его в приложение AppleScript.

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

Вставьте его на панель инструментов, и он должен указать путь к выбранному элементу. Я не даю никаких обещаний. :)

Он не должен спрашивать ваш пароль. Если это так, что-то странное. Вы по-прежнему можете открыть приложение с помощью редактора AppleScript, если хотите посмотреть на источник AppleScript.

Два основных вопроса:

  • Похоже, что Finder периодически обновляет файл .DS_Store, поэтому он может не работать с элементами, которые вы недавно добавили в корзину.
  • Он может обрабатывать только один элемент за раз.
Бенджамин Добсон
источник
Это бьет hexdumpнаверняка. :-) И этот cocoadev.com/index.pl?ParseDSStoreFiles, безусловно, также кажется интересным. Мой Google-Fu сильно меня подвел!
Арджан
Проголосовал этот (единственный) ответ, потому что это было действительно то, что я искал. Тем не менее, кажется, что скрипт (или, скорее, встроенная tipathпрограмма) не работает ни для одного из файлов в моей папке «Корзина».
августа
1
Ссылка умерла. :( Получил GitHub?
Сис Тиммерман
@ Benjamin, это все еще работает для более новых macs, где 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'
Дэн
источник