Previous Up Next

3  Redirection et entrées/sorties

Lorsqu’une commande a besoin d’afficher quelque chose à l’écran, elle utilise en générale la sortie standard (stdout, numéro 1). Il est possible de rediriger cette sortie standard sur un fichier. Essayez les commandes suivantes :

% ls
% ls > foo
% more foo

Les erreurs générées par un programme sont elles envoyées sur la sortie erreur (stderr, numéro 2). Il est aussi possible de rediriger cette sortie comme par exemple avec les commandes suivantes (Bourne Shell ou Bash):

% find /etc -name '*'
% find /etc -name '*' 1>foo
% more foo
% find /etc -name '*' 1>foo 2>bar
% more foo
% more bar

ou les commandes suivantes (C-shell et sa famille) :

% find /etc -name '*'
% find /etc -name '*' > foo
% more foo
% (find /etc -name '*' > foo) >& bar
% more foo
% more bar

Vous déterminerez si votre shell est de la famille du Bourne-Shell ou du C-Shell en consultant le contenu de la variable SHELL :

% echo $SHELL

De même, l’entrée standard (stdin) peut-être redirigée :

% wc
la premiere ligne 
la seconde
la fin 
Ctrl-D

% wc < .LISEZ-MOI
% wc < .LISEZ-MOI > foo  

Le pipe | permet de rediriger la sortie de l’exécution d’une commande sur l’entrée d’une autre. Par exemple, les commandes :

% cut -d: -f1 < /etc/passwd > fa
% sort < fa > fb

sont équivalentes à:

% cut -d: -f1 < /etc/passwd | sort > fc

La commande diff permet de lister les différences entre deux fichiers. Utilisez cette commande pour comparer les fichiers fb et fc.

Notez qu’il est tout à fait possible d’enchaîner plusieurs pipes :

% cat /etc/passwd | cut -d: -f1 | sort > fa

Previous Up Next