Une liste de commandes est une séquence d'un ou plusieurs pipes ou commandes séparés par l'un des caractères suivants :
Exemple 10..1 :
ls -lR | wc -l; more /usr/lib/sendmail/sendmail.cf ls /usr/bin; cat /etc/passwd find / -print >big.file & ls /usr/bin [ -f /etc/passwd] && cat /etc/passwd
Chaque liste de commandes peut être regroupée de deux façons :
Syntaxe | Signification |
(liste) |
Exécute la liste dans un sous shell sans perturber le contexte du shell courant. |
{liste ;} |
Exécute la liste dans le shell courant. Aucun sous shell n'est créé. |
Exemple 10..2 :
L'exemple ci-après permet de recopier le contenu d'un répertoire vers un autre. Pour cela, on utilise la commande « tar(1) ». L'option « -c » permet de créer une archive, l'option « -x » permet d'extraire les informations. Lorsque l'option « -f » est précisiée sur la ligne de commande, le premier argument de la commande « tar » est le nom du fichier où l'archive doit être écrite ou lue. Le fichier spécifié ici est « - » indiquant l'entrée ou la sortie standart. Lors de la création d'une archive, la commande « tar » admet au moins un argument : le fichier à sauvegarder ou bien le nom d'un répertoire contenant le point de l'arborescence à sauvegarder.
cd /home/users/schmoll; tar -cvf - . | (cd /tmp/trf; tar -xvf -)
L'expression précédente peut se décomposer en trois étapes :
/tmp/trf
») et
crée un nouveau sous processus pour exécuter une autre commande
« tar » lisant le contenu de l'archive à extraire sur l'entrée
standard.
En conclusion, le premier membre de l'expression (à gauche du symbole «|
») prend le contenu du répertoire «/home/users/schmoll
» et l'envoie sur sa sortie standard via le format d'archive « tar ». Le second membre change de répertoire et restaure le contenu du répertoire courant. Cette expression se résume donc au schéma.