[BASH] Existence de fichiers par extension

Existence de fichiers par extension [BASH] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 08-04-2011 à 11:09:56    

Bonjour,
 
j'essaye d'écrire un script pour savoir si tel ou tel type de fichier est présent sur un serveur Samba.
 
En gros, au lancement du script, je suis invité à saisir l'extension recherchée, puis le script me dit si le type de fichier en question est présent sur le serveur.
 
J'ai établi une ébauche de script avec mes maigres connaissances et en bidouillant avec des c/c de scripts trouvés sur le net. Mais bien entendu, ça ne fonctionne pas.
 
Pour l'instant j'ai ça :
 

Code :
  1. # Saisie du type de fichier a rechercher
  2. echo -e "Quel type de fichiers cherchez-vous ? \c"
  3. read reponse
  4. files=$(ls /*.$reponse 2> /dev/null | wc -l)
  5. if [ "$files" != "0" ]
  6. then
  7. echo "Il y a bien des fichiers $reponse sur le serveur."
  8. else
  9. echo "Il n'y a pas de fichier $reponse sur le serveur."
  10. fi


 
Sachant qu'à l'exécution, j'ai moult messages d'erreur et ne serait-ce que le "read" n'a pas l'air de fonctionner.
 
Si vous avez des solutions à me proposer, je suis preneur.


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
Reply

Marsh Posté le 08-04-2011 à 11:09:56   

Reply

Marsh Posté le 08-04-2011 à 11:19:03    

Ok à mon avis ton gros souci vient de ça :  
$(ls /*.$reponse 2> /dev/null | wc -l)
 
là tu cherches les fichiers à partir de la racine /
 
Donc ton script ne cherche pas où il faut à priori.
 
T'es déjà dans le dossier ? Enlève ton /
 
Ensuite si t'es sur un linux, remplace ton echo / read par :
 
read -p "Quel type de fichier recherchez vous" reponse

Reply

Marsh Posté le 08-04-2011 à 11:26:30    

OK, c'est déjà un élément de réponse.
 
Pour le répertoire, je voudrais que la recherche s'effectue sur l'ensemble du serveur ou plutôt dans tous les sous-rep d'un répertoire donné.


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
Reply

Marsh Posté le 08-04-2011 à 15:26:54    

Code :
  1. #!/bin/sh
  2. CHEMIN=/root
  3. # Saisie du type de fichier a rechercher
  4. echo -e "Quel type de fichiers cherchez-vous ? \c"
  5. read REPONSE
  6. NBFILES=$(find $CHEMIN -name '*.'$REPONSE | wc -l)
  7. if [ "$NBFILES" != "0" ]
  8. then
  9. echo "Il y a $NBFILES fichiers $REPONSE sur le serveur."
  10. else
  11. echo "Il n'y a pas de fichier $REPONSE sur le serveur."
  12. fi

Reply

Marsh Posté le 08-04-2011 à 15:44:25    

Je vais tester, merci ;)


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
Reply

Marsh Posté le 08-04-2011 à 15:51:37    

Normalement c'est tout bon  :D

Reply

Marsh Posté le 08-04-2011 à 16:14:11    

J'ai testé sur mandriva et j'ai toujours les mêmes erreurs à la con (pas de screen, je poste avec mon iPhone).
Bref, je verrai la semaine prochaine ce que ça donne sur le serveur.


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
Reply

Marsh Posté le 08-04-2011 à 16:21:05    

bizarre ça marche de mon côté sur du RHEL5  :heink:  
 
si jamais t'as l'occasion de poster les erreurs, ça m'interesse  :D

Reply

Marsh Posté le 08-04-2011 à 16:30:45    

Ce sera fait lundi :jap:


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
Reply

Marsh Posté le 08-04-2011 à 16:31:14    

merci  :)

Reply

Marsh Posté le 08-04-2011 à 16:31:14   

Reply

Marsh Posté le 09-04-2011 à 01:58:32    

Le '*.'$REPONSE ne doit pas bien marcher ::
 
Un "*.$REPONSE" marcherait mieux je pense ?

Reply

Marsh Posté le 09-04-2011 à 09:05:26    

Je ferai un test avec cette écriture.


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
Reply

Marsh Posté le 11-04-2011 à 08:58:25    

Voilà les erreurs que j'ai :

 

http://hfr-rehost.net/self/pic/da1a74af77a6ebbc25bb283c0f34078e297ed211.jpeg

 

Avec ce script :

 
Code :
  1. #!/bin/sh
  2. # Script de recherche de type de fichiers
  3. # Auteur : Brad
  4. # Dernière modification : 11/04/2011
  5. # Effacement de l'ecran
  6. clear
  7. CHEMIN=/root
  8. # Saisie du type de fichier a rechercher
  9. echo -e "Quel type de fichiers cherchez-vous ? \c"
  10. read REPONSE
  11. NBFILES=$(find $CHEMIN -name '*.'$REPONSE | wc -l)
  12. if [ "$NBFILES" != "0" ]
  13. then
  14. echo "Il y a $NBFILES fichiers $REPONSE sur le serveur."
  15. else
  16. echo "Il n'y a pas de fichier $REPONSE sur le serveur."
  17. fi
 

edit : mêmes erreurs avec les 2 écritures pour  '*.'$REPONSE


Message édité par Brad Pitt le 11-04-2011 à 08:59:04

---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
Reply

Marsh Posté le 11-04-2011 à 09:07:28    

Arghhhh proxy-taff nazi, je peux pas voir ta capture  :sweat:

Reply

Marsh Posté le 11-04-2011 à 09:16:03    

C'est quoi ce proxy qui bloque HFR rehost...

 

Ça donne

 
Citation :


 : commande introuvablee 5:
 : commande introuvablee 7: clear
 : commande introuvablee 8:
 : commande introuvablee 9:
Quel type de fichiers cherchez-vous ? exe
 " : identifiant non valable read: " REPONSE
find: `/root\r' : Aucun fichier ou dossier de ce type
script_rech_fic.sh: line 22:_Erreur de syntaxe : fin de fichier prématurée


Message édité par Brad Pitt le 11-04-2011 à 09:16:25

---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
Reply

Marsh Posté le 11-04-2011 à 09:33:09    

Ah ouais quand même !  
 
Pour les " : commande introuvable", je trouve que ça ressemble vachement à des mauvais retours de ligne.
 
essaye de faire :

Code :
  1. dos2unix ton_fichier


 
Puis lance-le à nouveau !

Reply

Marsh Posté le 11-04-2011 à 10:02:44    

Ouais, apparemment il y avait un problème de compatibilité (je l'avais d'abord tapé sur Seven en *.txt)
 
Je l'ai retapé sous vi et ça marche.
 
Merci de votre aide.


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
Reply

Marsh Posté le 11-04-2011 à 10:25:55    

de rien  ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed