Comment Save la sortie d’une commande dans un fichier dans un terminal Linux [Beginner’s Tip]

Lorsque vous exécutez une commande ou un script dans le terminal Linux, il imprime la sortie à l’écran pour votre visualisation immédiate.

Il y aura des moments où vous devrez enregistrer la sortie dans un fichier pour de futures références. Maintenant, vous pouvez sûrement copier et coller dans un terminal Linux, mais il existe de meilleurs moyens d’enregistrer la sortie d’un script shell ou d’une commande dans la ligne de commande Linux. Laissez-moi vous les montrer.

Méthode 1 : Utiliser la redirection pour enregistrer la sortie de la commande dans un fichier sous Linux

Tu peux utiliser la redirection sous Linux à cette fin. Avec l’opérateur de redirection, au lieu d’afficher la sortie à l’écran, elle va au fichier fourni.

  • Le > redirige la sortie de la commande vers un fichier remplaçant tout contenu existant sur le fichier.
  • Les redirections >> ajoutent la sortie de la commande à la fin du contenu existant (le cas échéant) du fichier.

Utilisez l’opérateur de redirection STDOUT > pour rediriger la sortie vers un fichier comme celui-ci :

command > file.txt

Si le fichier.txt n’existe pas, il sera créé automatiquement. Si vous utilisez à nouveau la redirection > avec le même fichier, le contenu du fichier est remplacé par la nouvelle sortie.

le example ci-dessous le démontre mieux. Il enregistre d’abord la sortie de la commande ls -l. Et puis plus tard, il remplace le contenu du fichier par la sortie de la commande ls *.c.

Redirection de la sortie de la commande vers un fichier

Si vous ne voulez pas perdre le contenu du fichier existant lors de l’enregistrement de la sortie d’un script ou d’une commande, utilisez l’opération de redirection en mode ajout avec >>.

command >> file.txt

Cette example le démontre mieux :

Redirection de la sortie de la commande vers un fichier en mode ajout

Même ici si le fichier n’existe pas, il est créé automatiquement.

Astuce bonus : Save Sortie de commande Linux ainsi qu’erreur dans un fichier

Si votre commande Linux renvoie une erreur, elle n’est pas enregistrée dans le fichier. Vous pouvez enregistrer à la fois la sortie de la commande et l’erreur de commande dans le même fichier en utilisant 2>&1 comme ceci :

commande > fichier.txt 2>&1

Fondamentalement, 0 correspond à l’entrée standard, 1 à la sortie standard et 2 à l’erreur standard. Ici, vous redirigez (>) l’erreur standard (2) vers la même adresse (&) que la sortie standard (1).

Méthode 2 : utilisez la commande tee pour afficher la sortie et l’enregistrer également dans un fichier

Au fait, avez-vous remarqué que lorsque vous envoyez la sortie de la commande dans un fichier, vous ne la voyez plus à l’écran ? le commande tee sous Linux résout ce problème pour vous.

Comme un tuyau en T qui envoie un jet d’eau dans deux directions, la commande tee envoie la sortie à l’écran ainsi qu’à un fichier (ou en entrée d’une autre commande). Vous pouvez l’utiliser comme ceci :

command | tee file.txt

Encore une fois, le fichier sera créé automatiquement, s’il n’existe pas déjà.

Vous pouvez également utiliser la commande tee en mode ajout avec l’option -a de cette manière :

command | tee -a file.txt

Permettez-moi de le démontrer avec quelques exemples faciles à suivre :

J’ai utilisé des commandes Linux simples dans mes exemples. Mais rassurez-vous, vous pouvez utiliser ces méthodes pour enregistrer la sortie de bash scripts aussi.

Remarque : évitez le piège des tuyaux lors de l’enregistrement de la sortie de la commande dans un fichier

Vous êtes probablement familier avec la redirection de tuyaux. Vous pouvez l’utiliser pour combiner des commandes Linux, mais vous ne pouvez pas diriger la sortie vers un fichier. Cela entraînera une erreur si la commande de nom de fichier n’est pas trouvée :

C’est parce que pipe redirige la sortie d’une commande vers l’entrée d’une autre commande. Et dans ce cas, vous lui donnez un nom de fichier alors qu’il attendait une commande.

Si vous êtes nouveau sur la ligne de commande Linux, j’espère que ce didacticiel rapide a ajouté un peu à vos connaissances Linux. Redirection E/S est un concept essentiel dont il faut être conscient.

Comme toujours, les questions et suggestions sont toujours les bienvenues.