Lors de l’exécution d’une commande dans le terminal, le résultat est généralement affiché directement à l’écran pour une lecture immédiate. Toutefois, il est parfois nécessaire de sauvegarder ce résultat pour l’analyser ultérieurement ou l’intégrer dans un autre processus.
La redirection de la sortie via la ligne de commande permet de réaliser cette action. Découvrez comment orienter le résultat d’une commande vers un fichier texte sous Windows, macOS et Linux.
Enregistrer la sortie de commande dans un fichier
Deux opérateurs permettent de rediriger la sortie d’une commande vers un fichier : « >>
» et « >
« . Comprendre la distinction entre ces deux opérateurs est essentiel afin d’éviter toute perte de données accidentelle.
L’opérateur « >
» a pour effet de créer un nouveau fichier, ou d’écraser un fichier existant s’il porte le même nom. L’opérateur « >>
» crée également un fichier s’il n’existe pas, mais il ne remplace pas un fichier existant. Si le fichier existe, la sortie de la commande est ajoutée à la fin du contenu déjà présent.
Pour rediriger la sortie d’une commande vers un fichier, saisissez la commande, puis indiquez l’opérateur « >
» ou « >>
« , et enfin, spécifiez le chemin du fichier de destination. Par exemple, voici comment enregistrer le résultat de la commande « ls
« , qui affiche le contenu d’un répertoire:
ls > /chemin/vers/fichier
Remplacez « /chemin/vers/fichier
» par le chemin complet du fichier souhaité. La commande s’exécutera sans affichage, en enregistrant sa sortie dans le fichier spécifié.
Pour visualiser le contenu du fichier dans le terminal, utilisez la commande « cat
« . Là encore, remplacez « /chemin/vers/fichier
» par le chemin d’accès correct.
cat /chemin/vers/fichier
Vous devriez voir le résultat de la commande dans votre nouveau fichier:
L’opérateur « >
» remplace le contenu d’un fichier existant. Pour enregistrer la sortie de plusieurs commandes dans le même fichier, utilisez l’opérateur « >>
« . Cela ajoute la nouvelle sortie à la suite du contenu existant, évitant la perte de données précédemment sauvegardées.
Par exemple, ajoutez des informations système à la fin du fichier que vous venez de créer. Exécutez la commande « uname -a
» sous Linux/macOS (ou « ver
» sous Windows) et ajoutez l’opérateur « >>
» suivi du chemin du fichier:
uname -a >> /chemin/vers/fichier
Répétez ce processus autant de fois que nécessaire pour ajouter le résultat de plusieurs commandes à la suite dans le fichier.
Afficher la sortie à l’écran et l’enregistrer dans un fichier
Les opérateurs « >
» et « >>
» n’affichent pas le résultat d’une commande à l’écran, ils l’orientent directement vers un fichier. Pour afficher la sortie à l’écran tout en l’enregistrant dans un fichier, utilisez la commande « tee
« .
Pour utiliser la commande « tee
« , envoyez-lui la sortie d’une autre commande via l’opérateur « pipe », représenté par une barre verticale « |
« . Par exemple, voici comment envoyer la sortie de la commande « ls
» à la commande « tee
« :
ls | tee /chemin/vers/sortie.txt
La commande « tee
» affiche alors cette sortie à l’écran et la copie dans le fichier spécifié. Elle écrase le contenu du fichier, ou en crée un nouveau s’il n’existe pas, comme l’opérateur « >
« .
Pour utiliser « tee
» pour afficher la sortie à l’écran et l’ajouter à la fin d’un fichier, ajoutez l’option « -a
» avant le chemin du fichier, par exemple :
uname -a | tee -a /chemin/vers/sortie.txt
Vous verrez le résultat de la commande sur votre écran, et vous pouvez utiliser la commande « cat
» pour vérifier que « tee
» l’a bien ajouté au fichier:
Exploiter la puissance de la ligne de commande
Il existe de nombreuses autres façons de rediriger la sortie, y compris les erreurs, vers un fichier. Grâce à la puissance de la ligne de commande, vous pouvez surveiller l’activité du système, combiner des données de plusieurs sources et bien plus encore.
Au-delà de la simple sauvegarde de la sortie, le terminal offre une multitude de possibilités. Bien que son apprentissage puisse paraître complexe, les commandes du terminal sont efficaces, modulaires et souvent plus rapides que les interfaces graphiques.