Potrzebuję prostego sposobu, aby sprawdzić, czy moje pliki są prawidłowymi dokumentami (pdf, doc, docx, ppt, pptx, xls, xlsx, odt, ods, odp itp.).
Nie mogę użyć, file
ponieważ w magic
ogóle nie działa dobrze. Na przykład w przypadku plików PDF jest to mój wynik.
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
Na przykład używam abiword
- co jest dobrym narzędziem - ale konwertuje dowolny format. Nie sprawdza poprawnych dokumentów:
abiword --to=txt --to-name=output.txt audio.mp3
Czy jest zatem dostępne polecenie, aby sprawdzić poprawność dokumentów?
Odpowiedzi:
Zaktualizować
/usr/share/file/magic
plik?Używałbym zrzutu heksadecymalnego, aby sprawdzić kilka pierwszych bajtów plików PDF, które nie zostały poprawnie zidentyfikowane.
Aktualizacja.
Sposób aktualizacji magicznego pliku zależy od systemu operacyjnego i dystrybucji. Zazwyczaj używasz menedżera pakietów. Na przykład w RedHat Linux i późniejszych dystrybucjach możesz użyć,
yum provides /usr/share/file/magic
aby znaleźć pakiet zawierający ten plik, a następnie użyćsudo yum update <packagename>
...Jeśli chcesz, możesz zamiast tego zaktualizować
magic
plik za pomocą edytora tekstu po przeczytaniuman magic
i użyciuhexdump _C -n 20
przykładowych plików dokumentów do samodzielnego opracowania podpisów.jeśli masz zamiar to zrobić, rozsądnie może być najpierw utworzyć osobny plik magii i przetestować go za pomocą opcji
file
s-m magicfile
.PS
Być może możesz przesłać do witryny udostępniania plików niektóre pliki, które
file
nie są poprawnie zidentyfikowane.źródło