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

Linux Discussion :

Bash pipe is et cp


Sujet :

Linux

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 57
    Points : 71
    Points
    71
    Par défaut Bash pipe is et cp
    soir
    je voudraist faire une pipe avec ls et cp, pour ranger mes repetoire
    la ligne de commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls *zip* |cp $? /home/data/
    je ne sais pas comment recuper la valeur de sorti de ls, pour luis assimiler a cp
    merçis

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    moi j'utiliserais find pour faire ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find ./ -name "*zip*" -exec cp {} /home/data/ \;
    par contre ca va etre recursif la, si tu veux uniquement trouver dans le repertoire en cours, ajoute l'option "-maxdepth 1"

  3. #3
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    bonjour,
    ta méthode ne peux pas fonctinonnée car 'cp' ne lit pas son entrée standard pour avoir le nom des fichier à copier. Le 'pipe' sert simplement à rediriger la sortie de la commande de gauche vers l'entrée de celle de droite, donc dans ton cas n'as aucun effet car 'cp' ne lit pas son entrée standard.
    Utilise 'find' comme te le conseille mawww ou un script du genre :

    ls *zip* | sed -re "s£(*)£\1 /home/data/£" | xargs -n1 cp
    sed -re "s£(*)£\1 /home/data/£" : converti la chaque ligne de sortie de ls (le nom du fichier) en "nomdufichier /home/data/" (se sera l'argument pour 'cp')

    xargs -n1 cp : xargs est une commande qui permet de générer une commande en récupérant les options sur l'entrée standard. Ici la commande a utiliser est 'cp' et aura comme argument la chaine définie ci-dessus.

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    et c'est quoi le problème avec un truc comme ca :

    (modulo le -r s'il s'agit de repertoires...)

  5. #5
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    Citation Envoyé par Pouic
    et c'est quoi le problème avec un truc comme ca :

    (modulo le -r s'il s'agit de repertoires...)
    ben oui vu que le 'ls' du premier post n'est pas récursif y'a pas besoin de find ou d'autre chose

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 57
    Points : 71
    Points
    71
    Par défaut
    merçis a vous
    je prefers
    j'avaits meme pas penser

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    et ben, narmataru, on s'est bien fait feinter tout les deux ou quoi !

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

Discussions similaires

  1. [Bash] Fournir un pipe en paramètre à une fonction
    Par SmallFitz dans le forum Shell et commandes GNU
    Réponses: 16
    Dernier message: 05/03/2013, 02h05
  2. Bash - Pipe sur bash
    Par Grizli dans le forum RedHat / CentOS / Fedora
    Réponses: 5
    Dernier message: 28/06/2012, 14h14
  3. BASH - PIPES bidirectionnel
    Par steven78700 dans le forum Débuter
    Réponses: 3
    Dernier message: 30/11/2011, 15h47
  4. [bash] pipes et rm
    Par Invité4 dans le forum Linux
    Réponses: 2
    Dernier message: 01/07/2010, 09h16
  5. Problème : bloquage d'un pipe
    Par Nicaisse dans le forum POSIX
    Réponses: 10
    Dernier message: 24/07/2003, 12h06

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