I/O Redirections¶
Descripteur | Identifiant | |
---|---|---|
Entrée standard | stdin | 0 |
Sortie standard | stdout | 1 |
Sortie erreur | stderr | 2 |
Redirection de sortie: >
¶
Redirige la sortie standart vers un nouveau fichier:
$ ls > liste.txt
Redirige la sortie standart vers un fichier (ajoute à la suite):
$ ls >> liste.txt
Redirige la sortie erreur vers un fichier:
>2 erreur.log
Redirection d'entrée: <
¶
Considère liste.txt comme entrée standart (au lieu du clavier):
$ sort < liste.txt
Envoyer un contenu à une commande avec votre clavier.
$ sort -n << FIN
heredoc… ❯ 45
heredoc… ❯ 23
heredoc… ❯ 12
heredoc… ❯ 78
heredoc… ❯ 45
heredoc… ❯ 9
heredoc… ❯ FIN
9
12
23
45
45
78
$ wc -m << STOP
heredoc… ❯ Combien de caracteres ?
heredoc… ❯ STOP
24
On peut combiner les 2¶
$ sort < liste.txt > liste_triee.txt
Rediriger vers un autre descripteur: >&
¶
Rediriger la sortie standard sur la sortie d'erreur:
$ echo "Error" 1>&2
$ echo "Error" >&2
Le trou noir: /dev/null
¶
- si on affiche son contenu, on n'obtient rien.
- si on écrit quelque chose dedans, il disparait.
$ echo "Bonjour"
Bonjour
$ echo "Bonjour" >/dev/null
Connecter 2 processus: |
¶
La sortie d'un programme est utilisée comme entrée d'un autre.
$ echo "Hello!" | tr "[:lower:]" "[:upper:]"
HELLO!
Erreurs¶
Rediriger les erreurs vers un fichier:
$ UneCommande 2> fichier-erreurs.txt
Rediriger les erreurs vers un fichier (ajouter à la suite)::
$ UneCommande 2>> erreurs.log
Rediriger la sortie standart et les erreurs vers un fichier:
$ UneCommande 2> erreurs.log
Rediriger la sortie et les erreurs vers un fichier:
$ UneCommande 2>&1 | tee fichier.txt
Fusionner les sorties¶
Il est possible de fusionner les sorties (standart et erreur) dans un seul et même fichier.
$ bad_command >>filename 2>&1
Dernière mise à jour:
March 7, 2020