Comment déterminer le type de fichier sous Linux?

Si quelqu’un m’envoie un document (.pdf, .doc, .xls, ppt, .ogg, mp3, png, etc.) sans l’extension, comment puis-je déterminer le type de fichier? La commande / usr / bin / file ne permet pas toujours de deviner ou indique simplement que je possède un document Microsoft Office. Je voudrais savoir exactement si je peux append l’extension au nom du fichier.

Vous pouvez créer vos propres règles en les ajoutant à / etc / magic

fichier homme pour plus de détails. Il est difficile de toujours avoir ces correctes cependant, j’ai eu un succès raisonnable.

Essayez le mime type (1).

Pour Perl, regardez File :: MimeInfo .

Certaines des autres affiches semblent jusqu’ici négliger certaines choses.

File :: MimeInfo utilise la même firebase database MimeInfo utilisée par ‘fichier’ pour identifier les fichiers. Donc, il est peu probable de faire quelque chose de différent.

File :: Type est probablement intéressant, car il ne repose que sur lui-même, mais cela conduit à un script long et comique avec des instructions “if”. Mais, de par sa nature même, il est peu probable que cela couvre les choses que «file» ne couvre pas déjà.

Le mieux que vous puissiez faire avec des types de fichiers inconnus est d’essayer de les ouvrir avec un éditeur hexadécimal, ou de les exécuter via des «chaînes» et de voir si vous reconnaissez quelque chose. Si vous gérez comment identifier un fichier, vous pouvez choisir File :: Type comme solution car, pour autant que je puisse le comprendre, il est au moins facile à étendre.

Vous pouvez utiliser le module Perl: File :: Type