LINUX.ORG.RU

Никак не могу понять, как с помощью file/libmagic определить тип Microsoft Word

 


0

3

По сути это ведь XML, положенный в zip-архив. Именно так эта хрень и определяется. Т.е. как архив. Ну или, если попросить просматривать архив, то как XML. Но всякие файл-менеджеры в Gnome/Xfce и прочие определяют такие файлы именно как Microsoft Office документ. И в самом magic-файле данный тип есть.

Ответ на: комментарий от Radjah

Пишут, что по наличию «[Content_Types].xml»

Можете несколько развернуть свою мысль (или то, что пишут)? Ну да есть в файле/архиве Content_Types.xml. И да там именно тот тег, который выдает Caja, и который есть в magic-е. Только почему же Caja его выдает, а file - нет?

zloy_starper ★★★
() автор топика
Ответ на: комментарий от Radjah

Вах. Они предлагают распаковывать архив и смотреть на наличие Content_Types.xml. Но тогда получается какая-то двойная глупость. Во-первых, получается, что для всех файлов можно использовать тот-же libmagic, но для некоторых типов надо еще и дополнительным образом извращаться. Во-вторых, непонятно, зачем в magic эта сигнатура, если для того, чтобы её найти, надо еще ручками проделать кучу работы и вообще искать её самому.

zloy_starper ★★★
() автор топика
Ответ на: комментарий от zloy_starper

Ну ты сравни сигнатуры для docx и jar. И то и другое по сути zip с другим расширением, но сигнатуры различаются.

При этом если перепаковать docx обычным zip-архиватором и переименовать из .zip в .docx, то Word прожуёт его на ура.

Radjah ★★★★★
()
Ответ на: комментарий от Radjah

Это все понятно. Мне не понятно то другое. Почему file эту сигнатуру не находит, а Caja эту же сигнатуру находит. Разве что в glib реализован собственный алгоритм поиска, который хоть и использует общую базу сигнатур, но работает независимо от libmagic.

zloy_starper ★★★
() автор топика
Ответ на: комментарий от Deleted

Вот добавил я новую версию сигнатуры, ссылку на которую дал ранее Smola. Теперь и file её определяет. Но Caja то и со старой версией работала.

zloy_starper ★★★
() автор топика

file это команда, которая работает по некоторой базе описаний форматов. Если у тебя нет в системе описания формата для docx то file его не определит.

man magic

и там по ссылкам. можешь выдрать описание из другого дистра.

vtVitus ★★★★★
()
Последнее исправление: vtVitus (всего исправлений: 3)
[kosyak@kdesktop Downloads]$ file -v
file-5.25
magic file from /usr/share/file/misc/magic
[kosyak@kdesktop Downloads]$ file dlink2640u.docx 
dlink2640u.docx: Microsoft Word 2007+

Стандартный пакет из реп арча, ничего не доставлял.

Kosyak ★★★★
()
Последнее исправление: Kosyak (всего исправлений: 1)
Ответ на: комментарий от zloy_starper

Вах. Они предлагают распаковывать архив и смотреть на наличие Content_Types.xml. Но тогда получается какая-то двойная глупость.

Очевидно же почему так. Сигнатура покажет zip архив. Надо лезть в zip и смотреть что там лежит.

anonymous
()
Ответ на: комментарий от zloy_starper

Что-то то ли 5.14, то ли 5.15.

У меня по Mint 17.2 file 5.14 определяет как zip-архив, а самосборный file 5.25 — как «Microsoft Word 2007+».

proud_anon ★★★★★
()
Последнее исправление: proud_anon (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.