Redirections

Sur linux on se sert d’un terminal pour passer les commandes.

Sachez bien que chaque commande a une entrée standard, une sortie standard et une sortie d’erreur.

Dans ce tuto, on va se focaliser sur la sortie standard et la sortie d’erreur d’une commande.

Prenons un exemple

Si vous passez cette commande date, vous aurez comme résultat (sortie standard) la date du jour, l’heure à laquelle vous avez passé la commande et l’année en cours qui affichera à l’écran.

Figure 1 / Sortie standard (date)

Partons du principe que le résultat (output) de cette commande, vous le voulez dans un fichier pour une analyse quelconque.

Sur linux, c’est possible avec le caractère >

Passez cette commande

date > datefile.txt

Figure 2

Comme vous le voyez sur l’image (Figure 2), le résultat de la commande date n’est pas visible sur l’écran, mais si vous faites un ls dans le répertoire courant, le fichier datefile.txt est créé, et si vous affichez son contenu, vous allez voir le résultat de la commande date.

Figure 3

Notez bien

Quand vous utilisez le caractère > pour rediriger la sortie standard de vos commandes vers un fichier, le nom du fichier (datefile.txt dans notre exemple) passé comme paramètre va être créé, cela veut dire que si ce fichier (datefile.txt) existait déjà, il va être recréé, les contenues de ce fichier vont être supprimés pour être remplacé par la nouvelle sortie standard de la commande.

Figure 4

Pour éviter que cela se produise, il faut utiliser le caractère > en double >>

Figure 5

Sortie d’erreur

Chaque commande à une sortie d’erreur.

Par exemple si on passe cette commande

date l

Figure 6

Comme vous voyez sur l’image (Figure 6), il y a une erreur, c’est la sortie d’erreur de la commande.

Il y a la possibilité de rediriger d’erreur de la commande vers un fichier avec les caracteres 2>

Passez la commande

date l 2> dateerrorfile.txt

Figure 7

Pour éviter d’effacer les contenus du fichier lors d’une prochaine redirection, utilisez les caractères 2>>

Fusion de la sortie standard et de la sortie d’erreur

On peut fusionner les deux sortie (standard et erreur) vers un seul fichier avec les caractères 2>&1

Passez ces deux commandes

date >> date.txt 2>&1

date l >> date.txt 2>&1

Figure 8

Maintenant, vous pouvez rediriger les sorties de vos commandes.

La redirection est très utilisée dans la programmation des scripts bash sur linux

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s