Восстановление отдельных файлов из бэкапа iTunes
Так уж исторически сложилось, что я люблю ставить систему “с чистого листа”, а потом восстанавливаю данные по очереди. Да, это всегда долго, но иногда спасает от дальнейших неприятностях.
И вот, я наконец нашел время обновить iPad невесты до iOS 6. Забэкапив данные приложений через ssh, я решил сделать бэкап в iTunes на всякий пожарный. Восстановив на iOS 6 и почти все посстановив, я вдруг понял, что забыл забэкапить GarageBand, в котором невеста часто записывает песни, поэтому данные надо было востановить. Вроде бы задача простая, софта много, но все меняется, если некоторые файлы, которые нужно восстановить, имеют в имени русские символы.
Приложения для извлечения файлов из бэкапа iTunes под OS X:
- iPhone / iPod Touch Backup Extractor
Действительно хорошая программа, которая прекрасно справляется со своей задачей и не просит за это денег. Раньше только ей и пользовался. Но есть один минус: будучи разработанной парнем из Ванкувера, она не слыхала про кириллицу, поэтому он файлы, в именах которых содержаться кракозябры, он просто игнорит, а папки преврощает в то, что когда-то называли “кракозябрами”. Например (.band – это папка):
1 2 3 4 5 6 7 8 9 |
|
Короче говоря, приложение идеально, но только если Вы уверены, что в нужных вам данных нет файлов, в названии которых присутсвуют русские буквы.
- Wondershare Dr.Fone
Даже говорить про него не хочу, ибо файлы приложений вообще доставить не умеет, а еще и денег хотят.
iPhone Backup Extractor
Название похоже, но программа совершенно другая. Интересно, что для OS X они предлагают запускать exe файл через Mono. ОК, но выглядит оно вот так:
Под надписью “Select Backup:” должно быть dropdown меню, но именно под макосью его почему то нет, и программа просто выбирает последний бэкап. Поэтому, чтобы выбрать нужный мне бэкап, я просто перенес остальные бэкапы в другую папку. Уже потрясает.
Но снова же: в именах файлов любой русский символ он заменяет на “_”, то есть получается_____ _________.band
Снова мимо тазика… Да еще и платная… Да и не работает выбор бэкапа…iBackUpBot
В общем приложение хорошое, если бы не страшный дизайн и проблема, про которую я поговорю дальше, все было бы идеально. Оно быстрое, оно даже умеет показывать иконки и имена приложений. Но…
Я могу понять, почему программы не работают с русскими именами файлов, но то, почему эта программа извлекает файлы без путей, я понять не могу. Правда все не так страшно. Ибо путь она прописывает в имени файла, заменяя “/” нижним подчеркиванеим.
Например, в папке приложения GarageBand есть папки Documents и Library, во второй же есть еще много папок и файлов. В самой программе все показывается весьма нормально:
Но после распаковки:
Одно хорошо: русские имена распаковываются нормально. Но, в чем смысл такой распаковки без путей, я понять не могу. К счастью, все не сложно исправить. Вот пример имени файла:
1
|
|
То есть надо вместо “_” подставить “/”, и правильно их скопировать. В этом нам поможет маленький скрипт на Python. Приступаем:
1. Запускаем Automator, выбираем приложение. (Можно и службу, но зачем создавать лишнюю службу для одноразового действия?) Назвать можно iBackUpBotHelper.
2. Добавляем “Утилиты=>Запустить shell-скрипт”. В качестве shell выбираем /usr/bin/python, а ввод передаем как аргументы.
3. Добавляем скриптик:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
- Сохраняем и перетягиваем файлы на новое приложение.
Почему я использовал mkdir и cp через os.system, а не родные средства питона? mkdir -p создает все дерево папок, то есть в случае mkdir -p /tmp/test/temp
даже если папки /tmp/test или даже папки /tmp нету, создается все дерево папок. Ну а раз я уж начала создавать папки через os.system, то и скопирую через него же.
На выходе получаем:
Но все же, почему разрабы сделали экспорт через одно место, мне до сих пор очень непонятно.