Как определить исходное местоположение файла, который в данный момент находится в корзине?

40

Предположим, что какой-то файл «Любой файл.pdf» находится в корзине (он же ~/.Trash).

Как я могу определить его первоначальное местоположение?

Под «исходное местоположение» Я имею в виду папку , в которой этот файл будет перемещен в , если бы нужно было применить команду «Put Back» к нему (но не на самом деле делать это)? (См. Рисунок ниже.)

(Я надеялся, что эта информация будет доступна через запуск «Get Info» для файла, но я не нашел ее там.)

Положить обратно

KJo
источник
3
Как упоминалось здесь (последний комментарий), эта информация, кажется, хранится в файле .DS_Store в папке для мусора
iolsmit
7
Связано: superuser.com/questions/59376/…
Ян С.
См soultion здесь discussions.apple.com/thread/5767821?tstart=0 , но он не работает , если ограждающая папка была удалена!
Pacerier

Ответы:

8

Данные, содержащие исходное местоположение файла до помещения в корзину, хранятся в файле .DS_Store в папке ~ / .Trash .

Поскольку папка корзины скрыта, ее обычно невозможно найти с помощью приложения поиска. Самый простой способ найти этот файл - использовать Терминал и ввести следующие команды.

$cd ~/.Trash
$open -e .DS_Store

Это откроет файл в TextEdit. Оттуда вы сможете быстро найти файл по его имени и оригинальному пути.

Кажется, что файлы в .DS_Store следуют шаблону:

FILE_NAME ptbLustr ORIGINAL_PATH_TO_FILE

Примечания пространства добавляются только для удобства чтения.

Дэвид
источник
2
Вы действительно проверяли это? .DS_Store содержит много двоичных данных, я не нашел ни одного имени файла.
холме
1
Я проверил это на своей машине перед публикацией. Я нашел ссылки на файлы в корзине и их исходных местах.
Дэвид
1
Ах, похоже, зависит от языковых настроек, здесь все Unicode.
холме
7
Я считаю, что этот ответ работает только для OS X около / до 10.4 или 10.5, так как .DS_Store теперь является двоичным файлом и недокументирован Apple .
bmike
Это все еще работает здесь в OS X 10.7.5.
Словари Аноним
1

Информация об исходном местоположении хранится в файле DS_Store . В более старой версии OS X он хранился в виде простого текста, а теперь в двоичном формате. Apple не документирует эти форматы, однако есть инструмент, созданный Wim L, который может его прочитать.

Инструмент написан на Perl, Mac::Finder::DSStoreпроект предоставляет подпрограммы для чтения и записи .DS_Storeфайлов, сгенерированных macOS.

В соответствии с первоначальной фиксацией , вышеупомянутый инструмент основан на работе Марка Митровая плюс собственное расследование автора.

Использование examples/dsstore_dump.plбудет пытаться выгрузить записи файла магазина в более понятном для человека формате.

Пример использования:

$ perl dsstore_dump.pl ~/.Trash/.DS_Store

    &makeEntries("foo.png",
        ptbL => "Users/username/Desktop/",
        ptbN => "foo.png"
    ),

Смотрите: репозиторий dsstore на hhhh.org и более старый репозиторий на GitHub .

kenorb
источник
0

На 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'
Дэн
источник
Вместо того, чтобы дублировать предыдущий ответ , возможно, вы могли бы расширить команду, чтобы специально возвращать местоположение «Возврат», что было бы более полезно для этого вопроса в отдельности?
grg
Я «продублирую» свой собственный ответ, который я разместил в 3 соответствующих темах, которые не предоставили мне подходящего решения. Просто пытался спасти других людей часом поиска, который я должен был сделать. Извините, если я делаю это неправильно.
Дан
Я понимаю, и вы не делаете ничего плохого, просто подумали, что было бы полезно адаптировать это к чему-то более конкретному для конкретного вопроса. Кроме того, предоставляя ссылку в моем предыдущем комментарии, другой вопрос теперь отображается в списке связанных вопросов справа, который может быть полезен для других.
grg
-3

«Вернуть» файл, использовать функцию поиска для поиска файла, когда вы найдете свой файл, щелкните его правой кнопкой мыши и выберите «Открыть вложенную папку»


источник
2
Что если одно и то же имя файла появляется в файловой системе более одного раза? Этот подход потерпит неудачу в этом случае. Лучше читать метаданные, которые OS X читает, чтобы определить местоположение «Put Back».
Ян С.
@IanC., Но эта опция хазитрута, кажется, единственная опция теперь, когда dsstore является двоичным
Pacerier
Fuzzytruth я имею в виду ...
Pacerier