Проверка правильности файлов документов

1006
sweb

Мне нужен простой способ проверить, являются ли мои файлы действительными документами (pdf, doc, docx, ppt, pptx, xls, xlsx, odt, ods, odp и т. Д.).

Я не могу использовать, fileпотому magicчто не работает вообще. Например, для файлов PDF это мой вывод.

sweb@sweb-laptop: /media/files/ebooks/PDF and CHM$ file --mime *. Pdf PHP 5 for Dummies. Pdf: application/pdf; charset=binary PHP 6 and MySQL 5 for Dynamic Web Sites. Pdf: application/octet-stream; charset=binary PHP6 and MySQL Bible. Pdf: application/pdf; charset=binary PHP6.pdf: application/octet-stream; charset=binary PHP and MySQL for Dummies SE. Pdf: application/pdf; charset=binary 

Например, я использую abiword- это хороший инструмент - но он конвертирует любой формат. Он не проверяет действительные документы:

abiword --to=txt --to-name=output.txt audio.mp3 

Есть ли какая-либо команда для проверки действительных документов?

2
Отличный вопрос. Я также хотел бы знать ответ на этот вопрос. Julian Knight 12 лет назад 0
Извините, каким-то образом это форматирование было испорчено. Надеюсь, это исправлено сейчас! slhck 12 лет назад 0
@slhck ты для улучшения sweb 12 лет назад 0

1 ответ на вопрос

2
RedGrittyBrick

Обновить ваш /usr/share/file/magicфайл?

#------------------------------------------------------------------------------ # pdf: file(1) magic for Portable Document Format #  0 string %PDF- PDF document >5 byte x \b, version %c >7 byte x \b.%c 

Я бы использовал hexdump, чтобы просмотреть первые несколько байтов PDF-файлов, которые не определены правильно.


Обновить.

Как вы обновляете волшебный файл, зависит от вашей операционной системы и дистрибутива. Обычно вы используете менеджер пакетов. Например, в RedHat Linux и последующих дистрибутивах вы можете использовать, yum provides /usr/share/file/magicчтобы найти пакет, содержащий этот файл, а затем использовать sudo yum update <packagename>...

$ yum provides /usr/share/file/magic ... file-4.17-15.el5_3.1.x86_64 : A utility for determining file types. Repo : installed Matched from: Other : Provides-match: /usr/share/file/magic   $ sudo yum update file Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: centos.mirroring.pulsant.co.uk * extras: centos.mirroring.pulsant.co.uk * rpmforge: nl.mirror.eurid.eu * updates: centos.mirroring.pulsant.co.uk Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package file.x86_64 0:4.17-21 set to be updated rpmforge/filelists_db | 5.9 MB 00:08 updates/filelists_db | 1.9 MB 00:03 --> Finished Dependency Resolution  Dependencies Resolved  ================================================================================ Package Arch Version Repository Size ================================================================================ Updating: file x86_64 4.17-21 base 320 k  Transaction Summary ================================================================================ Install 0 Package(s) Upgrade 1 Package(s)  Total download size: 320 k Is this ok [y/N]: y Downloading Packages: file-4.17-21.x86_64.rpm | 320 kB 00:02 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Updating : file 1/2 Cleanup : file 2/2  Updated: file.x86_64 0:4.17-21  Complete! 

Если вы хотите, вы можете вместо этого обновить magicфайл с помощью текстового редактора после прочтения man magicи использовать hexdump _C -n 20образцы файлов документов для самостоятельной обработки подписей.

если вы собираетесь это сделать, может быть целесообразно сначала создать отдельный магический файл и использовать опцию files -m magicfileдля его проверки.


PS

$ file --mime `locate *.pdf` /usr/share/doc/bind-9.3.6/arm/Bv9ARM.pdf: application/pdf /usr/share/doc/libtheora-1.0alpha7/Theora_I_spec.pdf: application/pdf /usr/share/doc/prelink-0.4.0/prelink.pdf: application/pdf /usr/share/doc/samba-3.0.33/Samba3-ByExample.pdf: application/pdf /usr/share/doc/samba-3.0.33/Samba3-Developers-Guide.pdf: application/pdf /usr/share/doc/samba-3.0.33/Samba3-HOWTO.pdf: application/pdf /usr/share/doc/speex-1.0.5/manual.pdf: application/pdf /usr/share/ghostscript/8.70/examples/annots.pdf: application/pdf /usr/share/gimp-print/doc/users-guide.pdf: application/pdf 

Возможно, вы можете загрузить на веб-сайт обмена файлами некоторые файлы, которые fileне могут быть правильно идентифицированы.

как я могу обновить его? где находится основная ветвь магического файла? sweb 12 лет назад 0
@sweb: см. обновленный ответ RedGrittyBrick 12 лет назад 0

Похожие вопросы