Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Terminal] commande time redirigé dans un fichier

Sujet résolu
    28 novembre 2014 à 18:49:09

    Bonjour,

    Je suis sous ubuntu et je voudrais rediriger dans un fichier ce que retourne la commande "time"

    $ time ls
    
    real 0m0.002s
    user 0m0.000s
    sys  0m0.002s

    Je sais que:

    • "> fichier" redirige la sortie stdout,
    • "2> fichier" redirige la sortie stderr,
    • "|& tee fichier" redirige les deux,

    mais je ne sais pas ce qui redirige la sortie de time. j'ai tenté "chiffre>" de 0 à 9 mais à part 0 qui me retourne un "Erreur de segmentation (core dumped)", j'ai rien trouvé.

    -----------

    question supplémentaire: je voudrais que ça s'ajoute dans le fichier comme avec >> et que ça n'écrase pas le fichier.

    merci.

    -
    Edité par argaur313 28 novembre 2014 à 19:02:48

    • Partager sur Facebook
    • Partager sur Twitter
      28 novembre 2014 à 21:39:41

      Salut,

      Tu as essayé: time >> fichier

      Ed

      -
      Edité par E-d0u@rd 28 novembre 2014 à 21:47:26

      • Partager sur Facebook
      • Partager sur Twitter
      Je travaille pour Sentinel Tower - Tout Monitorer !
        28 novembre 2014 à 22:02:12

        Salut,

        Tu peux faire comme ceci :

        (time ls) 2> time.txt 

        Cela ne redirige que la sortie de time, mais risque (pas eu le cas) de retourné les erreurs de la commande.

        Autres solutions :

        ## Tous retourné dans le fichier
        $ (time ls) > time.txt
        
        ## Retourné reelement que la sortie de time
        $ (time ls > /dev/null 2>&1) 2> time.txt




        • Partager sur Facebook
        • Partager sur Twitter
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème
          28 novembre 2014 à 22:25:41

          merci thetataz, ça marche très bien.

          non E-d0u@rd, ça ne marchait absolument pas.

          ---------------------------

          bon, il reste un petit problème même si je n'en ai pas vraiment besoin pour mes test:

          $ (time ./markov 1 1000000 < zadig.txt > resultat.txt > /dev/null 2>&1) 2>> time.txt

          résultat.txt n'est pas rempli par la sortie standard de markov.

          • Partager sur Facebook
          • Partager sur Twitter
            28 novembre 2014 à 22:35:28

            C'est parce que tu redirige deux fois la sortie, une fois vers le resultat.txt, une autre vers /dev/null. le 2>&1 permets de redirigé la sortie 2 (généralement les erreurs) vers le même fichier que la sortie 1. Donc ta deuxième redirection bypass la 1er. Je sais pas si je suis clair dans ce que je dis.

            en gros si tu fait :

            $ echo "Hello" > file1 > file2 > file3

            la redirection ce fera que vers le file3.

            Dans ton cas cela donnerai plutôt :

            $ (time ./markov 1 1000000 < zadig.txt > resultat.txt 2> /dev/null) 2>> time.txt



            -
            Edité par thetataz 28 novembre 2014 à 22:37:58

            • Partager sur Facebook
            • Partager sur Twitter
            S'il n'y a pas de solution, c'est qu'il n'y a pas de problème

            [Terminal] commande time redirigé dans un fichier

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown