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

Administration système Discussion :

Probleme sur le ls


Sujet :

Administration système

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 135
    Points : 46
    Points
    46
    Par défaut Probleme sur le ls
    Bonjour,

    J'ai voulu faire une fonction qui deplace des fichiers d'un repertoire a un autre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    REP=`ls reno_nok/*.xml`
    for FICHIER in $REP
    do
    	cp $FICHIER reno2
    done
    en faisant cela le serveur m'a repondu de la maniere suivante:
    lance_modules.ksh[32]: /usr/bin/ls: 0403-027 Liste de paramètres trop longue.

    Est ce qu'il y a une taille sur le ls ou pas ?

    comment faire pour que ca marche ?

    Note : Le repertoire contenait 7000 fichiers

    Merci.

  2. #2
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Points : 5 075
    Points
    5 075
    Par défaut
    Citation Envoyé par ujoodha
    Bonjour,

    J'ai voulu faire une fonction qui deplace des fichiers d'un repertoire a un autre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    REP=`ls reno_nok/*.xml`
    for FICHIER in $REP
    do
    	cp $FICHIER reno2
    done
    en faisant cela le serveur m'a repondu de la maniere suivante:
    lance_modules.ksh[32]: /usr/bin/ls: 0403-027 Liste de paramètres trop longue.

    Est ce qu'il y a une taille sur le ls ou pas ?

    comment faire pour que ca marche ?

    Note : Le repertoire contenait 7000 fichiers

    Merci.
    J'ai déjà eu ce problème.
    Le script est il en ksh ? en sh ou en bash ?
    En bash, j'ai réussi à faire un ls avec plus de 50 000 fichiers.

    As tu que des .xml dans ton répertoires? Si oui, alors pas la peine de mettre l'extension REP=`ls reno_nok` te fais passer outre cette limite.
    Grave urgent !!!

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 135
    Points : 46
    Points
    46
    Par défaut Comment ??
    J'ai pas compris la cause
    c'est du ksh et non il n'y a pas que du .xml

    Tu penses qu'il y une sorte de taille buffer sur le ls

  4. #4
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Points : 5 075
    Points
    5 075
    Par défaut
    Citation Envoyé par ujoodha
    J'ai pas compris la cause
    c'est du ksh et non il n'y a pas que du .xml

    Tu penses qu'il y une sorte de taille buffer sur le ls
    En fait quand tu fais le "ls *", le shell va remplacer * par tous les fichiers trouvé

    Ex:
    Répertoire A, contenant la suite de fichier :
    maison.txt
    carotte.txt
    bidule.prt

    Je lance : ls simplement.
    ls va se lancer et tout afficher.

    Je lance : ls A/*
    Le shell remplace * et lance la commande
    ls A/maison.txt A/carotte.txt A/bidule.prt

    Donc si ton * est trop important, alors le shell remplace par beaucoup trop de fichier que le buffer de "ls" peut contenir en argument -> Erreur : argument too long
    PS : je ne suis pas sur que ca soit ls qui renvoie l'erreur ou le shell. J'avoue ne pas avoir chercher mais l'idée est là
    Grave urgent !!!

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 135
    Points : 46
    Points
    46
    Par défaut
    Ok merci bien je comprend mieux maintenant
    Merci de m'avoir m'aider

  6. #6
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Points : 5 075
    Points
    5 075
    Par défaut
    Je me rappelle de la solution!
    Enfin, plutot une dérivée de solution
    J'avais fait des ..etc sur toutes les lettres de l'alphabet. Chiant mais pas le choix avec 65 000 fichiers (une base de données sur des petits fichiers plats d'un kilo... qui a grossit, grossit!)
    Grave urgent !!!

  7. #7
    Membre expérimenté
    Avatar de nyal
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    622
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 622
    Points : 1 428
    Points
    1 428
    Par défaut
    Bonjour,

    C'est un problème classique. Il y'a une solution simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for FICHIER in reno_nok/*.xml
    do
    	cp $FICHIER reno2
    done
    Cette syntaxe est plus rapide et vous n'avez plus l'erreur pour la longueur.

  8. #8
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find reno_nok/ -name "*.xml" -exec cp {} reno2/ \;
    Éventuellement, ajouter un
    -maxdepth 1
    Software becomes slower faster than hardware becomes faster
    [size=1]
    http://xrenault.developpez.com

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 135
    Points : 46
    Points
    46
    Par défaut
    le find est pas mal
    je vais tester merci de vos solutions

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

Discussions similaires

  1. [LG]Probleme sur l'identification de typage
    Par axelmeunier dans le forum Langage
    Réponses: 10
    Dernier message: 19/01/2004, 13h41
  2. Réponses: 3
    Dernier message: 07/04/2003, 20h06
  3. Probleme sur le Fields des fichiers Xmlgram
    Par Sandrine75 dans le forum XMLRAD
    Réponses: 4
    Dernier message: 20/03/2003, 17h09
  4. Probleme sur un AppendChild
    Par Toxine77 dans le forum XMLRAD
    Réponses: 3
    Dernier message: 14/03/2003, 18h25
  5. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01

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