Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
modifier le type de fichier
Envoyé par: austin

bonjour,

si je ne trompe pas, le type d'un fichier (fichier texte, video, ou script shell par exemple) est stoké dans le premiet octet du fichier, ce type est definie par un identifiant "magic number".

Ma question toute simple et de savoir comment modifier ce type (en ligne de commande ou via xfree)
jai fait un petit script shell mais il identifie mon fichier en fichier texte, et donc refuse de le lancer via konqueror car il ouvre un editeur de texte au lieu de le lancer.. bien sur en ligne de commande ca s'execute.

si quelqu'un pouvait m'aider smiling smiley

Poste le Wednesday 21 April 2004 21:23:26
Répondre     Citer    
Re: modifier le type de fichier
Envoyé par: blade124

si tu connais le fameux "magic number" pourquoi tu l'ouvres pas avec un editeur hexa ( khexedit sous kde je crois ) tu ouvre un autre fichier avec le type que tu veux ( par exmple un binaire ds ton cas ) et tu fais un copier-coller du premier octet...
c'est juste une idée comme ca, j'ai jamais testé alors je peux pas te dire si ca marche, mais ca vaut le coup d'essayer.

Poste le Wednesday 21 April 2004 23:07:42
Répondre     Citer    
Re: modifier le type de fichier
Envoyé par: blade124

oups erreur de ma part, sachant que KDE utilise file pour detecter le type de fichier, j'ai etudié un peu le fonctionnement de file et apparement il lis l'entete du fichier pour en connaitre le type. Donc avec l'editeur hexa tu copies tout l'entete. j'ai testé et ca marche, je le ai fais passer une image PNG pour une JPEG...

Poste le Wednesday 21 April 2004 23:11:21
Répondre     Citer    
Re: modifier le type de fichier
Envoyé par: austin

effectivement je me doutais de cette solution sauf que je n'ai pas d'editeur hexa.. mais bon je vais en installer un...
C'est bizarre qu'il n'y a pas une solution plus simple pour faire la manip sous kde

Poste le Thursday 22 April 2004 10:49:20
Répondre     Citer    
Re: modifier le type de fichier
Envoyé par: blade124

y'a p-e plus simple, mais j'ai pas cherché, mais o - avec cette methode, ton fichier passeras pour un executable autant avec kde que gnome etc...

Poste le Thursday 22 April 2004 11:03:25
Répondre     Citer    
Re: modifier le type de fichier
Envoyé par: austin

j'ai recuperer khex, mais quand j'ouvre mon fichier avec j'arrive directement dans le fichier, je vois pas ou il stock le magic number.

Coment tu as fait pour trouver et chnager ce magaic number ?

merci

Poste le Thursday 22 April 2004 22:03:04
Répondre     Citer    
Re: modifier le type de fichier
Envoyé par: Eric92

Sauf exception il ne faut pas changer le "magic number" (qui souvent n'est pas sur un seul octet).
Mais dans le cas présent « un petit script shell » c'est très simple,
il suffit d'ajouter au début du fichier, en 1ère ligne :
#!/bin/bash

Voir rubrique "COMMAND EXECUTION" dans: man bash

Poste le Friday 23 April 2004 02:27:19
Répondre     Citer    
Re: modifier le type de fichier
Envoyé par: blade12

Eric, le pb c'est que konqeror, meme si on mets le #!/bin/bash, ouvre les scripts shell avec un editeur de texte.
Pour le "magic number", comme dis Eric, ce n'est pas sur un seul octet, en fait c'est tout l'entete du fichier. Et pour ne pas simplifier evidemment ca depends du type de fichier.
En gros, ca a marché pour mon image mais ca sers a rien que je te file les offset car se seras pas les memes.
L'entete d'un fichier commence au début ( logique ca winking smiley ) par contre pour la fin... j'ai l'habitude de bidouilller en hexa alors je n'ai pas eu trop de pb pour le trouver, mais je serais incapable de t'expliquer comment reperer la fin de cet entete.

Poste le Friday 23 April 2004 09:43:49
Répondre     Citer    
Re: modifier le type de fichier
Envoyé par: alveric

Pour qu'un script puisse être lancé, il faut ajouter la première ligne "#! /mon/shell", et ajouter les droits d'exécution sur le fichier.

Patcher le début d'un fichier de type A pour qu'il ressemble à un en-tête de type B ne change pas le type du fichier, vu que le reste du fichier est toujours organisé comme un fichier de type A. Le fichier modifié sera détecté par "file" (donc par Konqueror) comme type B. Quand on voudra l'utiliser, Konqueror lancera l'appli correspondant au type B, mais cette app détectera (très probablement) que le reste du fichier n'est pas structuré comme l'insique l'en-tête, et t'enverra donc un message d'insulte.

Bref, on aboutit (à + ou - 99% de chances) à un fichier inutilisable...

Sinon, l'appli tente quand même d'utiliser le fichier... et là on peut aboutir soit à un résultat bizarre (genre envoyer un fichier bitmap sur /dev/dsp, c'est marrant 5 secondes), un bug de l'appli, ou à un genre de piège MIME comme certains virus à la con de windaube/IE.


Pour plus d'info, lire la doc de "file", et le fichier "magic" qui contient toutes les signatures qu'il utilise (sa localisation exacte peut dépendre de la distro, et est donnée dans la page man)

Poste le Saturday 24 April 2004 02:29:01
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
modifier le type de fichier
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons