Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#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
Dell Vostro 3550 Ubuntu 14.04 64 bits

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

Haut de page ↑