Reconnaitre un type de fichier en shell

nokoda -  
 nokoda -
Bonjour, voila, j'ai un probleme ; )

j'ai une variable comme ceci : busauto3=$(/home/$USER/monfichier)

ensuite, une serie de commandes qui modifient ce fichier, probleme, ma variable ne doit pointer que sur des fichiers vidéos ou musicaux, malheuresement, si je la fait pointer sur du texte ou autre, le script continu de s'executer, comment dois-je m'y prendre pour arreter l'execution du script si le fichier n'est pas une video ou un son ?

merci d'avance !

4 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    file fichier

    Devrait te renvoyer le type de fichier, ou du moins tu devrais pouvoir faire le tri en fonction du résultat (man file pour plus de détails).
    0
  2. nokoda
     
    Merci, c'est bien cette commande qu'il me fallait,

    si je fais un :

    file $busauto3

    cela me renvoie bien le type de fichier,, mais il faudrait que je fasse agir cette commande comme un filtre, qui ne garde que les fichiers de type multimédia, or je ne sais pas du tout coment m'y prendre, aurais tu une idée s'il te plait ?
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Est-ce qu'ils ont une extension tes fichiers ?
      0
  3. nokoda
     
    certains ont une extension, ".mp3" et ".flv" majoritairement, mais les autres n'ont qu'un nom simple, "mavideo", et pour voir quelle est le format je dois faire un clique droit > propriété
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Un truc du genre devrait t'aider :

      for fich in *
      do
      file -ib "${fich}" | egrep 'audio|video'
      if [ "$?" = "0" ]
      then
      traitement du fichier
      fi
      0