IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

mv ignorer l'erreur


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de floanne
    Inscrit en
    Février 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2006
    Messages : 167
    Par défaut mv ignorer l'erreur
    Bonjour.

    Je fais un mv qui ressemble à ça :
    Quand il y a des fichiers qui commencent par "toto" : aucun problème ça fait ce que je veux. Par contre si il n'y en a pas ça me retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mv: cannot stat `toto*': No such file or directory
    J'aimerais ignorer ce message pour qu'il ne bloque pas mon script...

    Merci de vos réponses,
    Florent.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Par défaut
    Bonjour,

    Avant d'exécuter le mv, tu peux vérifier s'il existe bien des fichiers qui portent ce nom.

    Lilian.

  3. #3
    Membre confirmé Avatar de floanne
    Inscrit en
    Février 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2006
    Messages : 167
    Par défaut
    Bonjour.

    Merci de ta réponse mais j'ai tester pour compter le nombre de fichier. Mais j'ai la même erreur avec le ls
    avec un -f l'étoile ne marche pas...


    Merci, Florent.

  4. #4
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    suffit de tester la presence des fichier toto* avant de les déplacer.
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /tmp
    $ touch TOTO
    $ [[ -f TOTO ]] && mv TOTO 1/ || echo "Pas de TOTO"
    $ [[ -f TOTO ]] && mv TOTO 1/ || echo "Pas de TOTO"
    Pas de TOTO
    $ rm 1/TOTO
    $
    man ksh (ou bash selon ton shell préféré) te donnera la liste des tests disponibles (comme les fichiers de tailles zéro ; est un fichier ; est un repertoire ; a certains droits etc....)

    bien sur la balise "sinon" (le double pipe) n'est pas obligatoire tu peux ne pas l'utiliser

    ou tu peux faire simplement une redirection du message derreur dans rien

    comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mv TOTO destination/ 2> /dev/null
    ça provoque l'erreur mais n'affiche pas le message néanmoins c''est idiot puisque la commande est lancée quand même contrairement à la méthode du test de présence du/des fichier(s)

  5. #5
    Membre confirmé Avatar de floanne
    Inscrit en
    Février 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2006
    Messages : 167
    Par défaut
    Ok merci.

    La première solution ne marche pas dans mon cas il me semble : mes fichiers se nomment toto_quelque_chose. Je ne connais pas le nom exact... et j'ai essayé de faire un -f toto* mais ça ne marchait pas...

    Sinon la deuxième solution est peut-être la bonne : je testerai demain...

    Merci beaucoup
    Florent.

  6. #6
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    exemple complet utilisant une expression simple avec *

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $ touch nata niti nono nutu nyty
    $ ls
    nata             niti             nono             nutu             nyty
    $ find . -type f -name "n*" > liste_a_traiter       
    $ while read ligne                                  
    > do
    > mv $ligne $(echo $ligne|sed "s/n/t/")             
    > done < liste_a_traiter && rm liste_a_traiter      
    $ ls
    tata titi tono tutu tyty
    $

    bien sur si tu n'as qu'un repertoire unique à modifier tu peux simplifier en simple sequence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ ls
    tata titi tono tutu tyty
    $ for i in t* ; do mv $i $(echo $i|sed "s/t/n/") ; done
    $ ls
    nata niti nono nutu nyty

  7. #7
    Membre confirmé Avatar de floanne
    Inscrit en
    Février 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2006
    Messages : 167
    Par défaut
    Merci pour toutes les réponses.

    Au final je me suis servi de la redirection des erreurs dans le répertoire null.

    Encore merci, Florent.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ignorer les erreurs de certificas SSL pour DirectoryServices..
    Par olivier.schmitt2 dans le forum VB.NET
    Réponses: 1
    Dernier message: 06/02/2008, 14h08
  2. Ignorer une erreur grace à la gestion des erreurs
    Par Kihmé Xs dans le forum Général VBA
    Réponses: 2
    Dernier message: 12/07/2007, 17h11
  3. Réponses: 3
    Dernier message: 21/06/2007, 12h53
  4. ignorer une erreur
    Par sky_perrinos dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/04/2006, 10h09
  5. [pgAdminIII] Comment ignorer les erreurs de script
    Par Escandil dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 22/07/2005, 12h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo