Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/07/2013, à 18:17

totycos

La commande file

Bonjour à tous,

Je cherche à comprendre le fonctionnement de la commande file du Shell, n'étant pas très à l'aise avec l'anglais, le man file ne m'est pas d'une grande aide (introuvable en français).

Ces recherches sont dans le but de résoudre cet exercice :

Créer un fichier magique nommé ft_magic qui devra être correctement formaté
pour détecter les fichiers de type 42 file et constitués de la chaîne "42" à l’octet
42.


Un connaisseur ? ^^

Merci.


PS : Cet exercice est extrait d'une partie du concours d'entrée de l'école 42 (la nouvelle école d'informatique ouverte par Xavier Niel, directeur de Free)

Hors ligne

#2 Le 19/07/2013, à 02:23

Arbiel

Re : La commande file

Bonsoir

Comment définis-tu les fichiers de type 42 ? Sont-ce ceux qui justement contiennent la valeur 42 à l'octet 42 ? Et ces valeurs sont-ce des valeurs hexadécimales ou décimales ?

man file a écrit :

file tests each argument in an attempt to classify it.  There are three sets of tests, performed in this order: filesystem tests, magic tests, and language tests.  The first test that succeeds causes the file type to be printed.

file teste chaque fichier passé en paramètre de la commande pour en déterminer le type. Trois types de tests sont exécutés : des tests systèmes, des tests "magic" et des test de langue. La commande imprime le résultat du premier test qui réussit

man file a écrit :

The filesystem tests are based on examining the return from a stat(2) system call.  The program checks to see if the file is empty, or if it's some sort of special file.  Any known file types appropriate to the system are running on (sockets, symbolic links, or named pipes (FIFOs) on those systems that implement them) are intuited if they are defined in the system header file <sys/stat.h>

Je ne pense pas que ce soit ce qui t'intéresse

man file a écrit :

The magic tests are used to check for files with data in particular fixed formats.  The canonical example of this is a binary executable (compiled program) a.out file, whose format is defined in <elf.h>, <a.out.h> and possibly <exec.h> in the standard include directory.  These files have a “magic number” stored in a particular place near the beginning of the file that tells the UNIX operating system that the file is a binary executable, and which of several types thereof.  The concept of a “magic” has been applied by extension to data files.  Any file with some invariant identifier at a small fixed offset into the file can usually be described in this way.  The information identifying these files is read from /etc/magic and the compiled magic file /usr/share/misc/magic.mgc, or the files in the directory /usr/share/misc/magic if the compiled file does not exist.  In addition, if $HOME/.magic.mgc or $HOME/.magic exists, it will be used in preference to the system magic files.

Je crois que c'est cela qui t'intéresse. On t'y dit que

Les tests "magic" sont utilisés pour rechercher des fichiers d'un format prédéfini. L'exemple type est celui d'un exécutable dont le format est défini dans <elf.h>...Ces fichiers contiennent une valeur particulière, un nombre "magique" à un endroit bien précis qui informe le noyau qu'il s'agit d'un exécutable, et de quel type d'exécutable il s'agit. Ce concept de "nombre magique" a été étendu aux fichiers de données. Tout fichier de données contenant une valeur particulière à un emplacement bien défini du fichier est reconnu comme étant du type correspondant. Les descriptions de ces "nombres magiques" se trouvent dans le fichier /etc/magic et le fichier compilé /usr/share/misc/magic.mgc, ou dans les fichiers du répertoire /usr/share/misc/magic si le fichier compilé n'existe pas. Enfin, les fichiers $HOME/.magic.mgc ou $HOME/.magic, lorsqu'ils existent sont utilisés en priorité à ces fichiers système "magiques"

Arbiel

Dernière modification par Arbiel (Le 19/07/2013, à 02:25)


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#3 Le 19/07/2013, à 20:25

totycos

Re : La commande file

Bonsoir Arbiel,

Merci pour ta réponse, cependant je pense qu'il me manque des informations pour résoudre cet exercice. Je vais donc m'arrêter la.
Dois je mettre résolu ou est il possible de supprimer le post ?

Encore Merci l'ami :)

Hors ligne