Pipe de commandes

furax77 Messages postés 1 Statut Membre -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,
Quelqu'un s'est il ,s'il est possible de "piper" le résultat d'une commande mv à un gzip. pour ne faire qu'une seule commande . (ou l'inverse gzip "piper" à un mv) afin de remplacr les 2 commades suivantes.

mv /home/user1/toto.gz /home/user2|
gzip -d /home/user2/toto.gz

Merci d'avance

JJ
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. furax77
     
    Merci,
    mais en fait dans tes solutions il s'agit plus de 2 commandes consécutives avec l'utilisation du "&&".
    Je cherchai s'il était possible de prendre en entrée de la seconde commande la sortie de la précédente ( le pipe)
    merci quand mème
    JJ
    1
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    tu peux faire dans une seule commande

    mv /home/user1/toto.gz /home/user2 && gzip -d /home/user2/toto.gz


    ou

    gzip -dc /home/user1/toto.gz > /home/user2/toto && rm -v /home/user1/toto.gz


    Regarde le chapitre XXX. Les redirections et les pipelines
    0
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Tu peux faire avec le chemin relatif

    Supposons au tu te trouves dans /home/user1
    c'est-à-dire que tu vois une invité (prompt) de genre [user1@localhost ~] $

    Voià la commande avec le chemin relatif

    mv toto.gz ../user2 && gzip -d ../user2/toto.gz

    0
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Je cherchai s'il était possible de prendre en entrée de la seconde commande la sortie de la précédente ( le pipe)

    Mais la sortie de la commande mv c'est quoi?
    c'est un échec ou un succés donc il n'y a rien à transmettre en entrè pour la 2ème commande

    mais en fait dans tes solutions il s'agit plus de 2 commandes consécutives avec l'utilisation du "&&".


    Avec pipe c'est la même chose, c'est seulement l'interpretation qui n'est pas la même

    commande1 | commande2

    la sortie de commande1 est l'entrée de commande2

    commande1 && commande2


    commande2 s'exécute si et seulement la commande1 réussi

    Dans ton cas tu as un résultat qui peut être une réussite où un échec, donc && est ce qu'il te faut

    Un exemple avec |

    cat fichier | less
    cat fichier affiche sur la sortie standard le contenu de fichier
    less lit la sortie de cat et permet la visualisation ligne par ligne

    Dans ton cas tu peux faire quelque chose de genre

    gzip -dc /home/user1/toto.gz | /home/user2/toto.gz && rm /home/user1/toto.gz

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    afin de remplacr les 2 commades suivantes.


    A savoir que ça reste toujours 2 commandes

    mv /home/user1/toto.gz /home/user2 | gzip -d /home/user2/toto.gz


    Cette commande fonctionne aussi.
    Le résultat de mv et lu par la commande suivante ensuite le fichier /home/user2/toto.gz est decompressé

    Dans ce cas si jamais tu as une erreur dans la 1ère commande la 2ème essaie quand même de s'exécuter. Elle va avoir aussi un échec vu que le fichier n'a pas été deplacé.

    En revanche avec && la 2ème commande n'est exécutée que si la 1ère a réussi.

    J'espère que j'ai été assez claire.
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      J'espère que j'ai été assez claire
      Dans ce cas là, faut changer de pseudo => lamie20j ;-DDDDD

      Bonne soirée ;-)
      0
      1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Salut,

        ne te moque pas de moi :-DDDD
        celui qui ne travaille pas, ne fait pas non plus d'erreurs :-DDDDD

        c'est vrai aussi que celui qui fait d'erreus ne veut pas dire qu'il travaille :-DDDD

        Sinon, ça va?
        0