Vous êtes ici

Les redirections

La redirection est un élément important dans l'utilisation du shell ou dans l'écriture de scripts sous LInux. Le principe est simple : je redirige le résultat d'une commande ailleurs que là où elle devrait aller normalement. Si on peut rediriger une sortie il est aussi possible de rediriger une entrée.

Voyons déja les redirections en sortie.

Avec un exemple cela parle plus.

Si vous voulez afficher les fichiers et répertoires vous saisissez la commande "ls". Le résultat s'affiche à l'écran ce qui est le comportement normal de la commande en question. Si vous voulez récupérer cette liste dans un fichier vous pourrier ouvrir un éditeur de texte et saisir les noms des éléments présents dans le dossier en cours. Ou, vous pouvez utiliser les redirections.

Les redirections se matérialisent par les signes ">", ">>" pour les sorties et "<" et "<<" pour les entrées.

Reprenons notre exemple. Cela donne :

$ ls > fichier.txt

Vous pouvez vérifier ensuite le résultat de la commande via un :

$ cat fichier.txt

Si par contre le fichier de sortie existe déja. sachez qu'il sera écraser. Si vous souhaitez le conserver vous pouvez ajouter le résultat de la commande à la fichier du fichier en utilisant le double chevron :

$ ls >> fichier.txt

Vous savez à ce stade rediriger le résultat d'une commande vers un fichier en création ou en ajout.

Voyons maintenant les redirections en entrée.

L'idée générale est la même. J'exécute une commande qui attend des données d'une source (la console avec une saisie de l'utisateur) mais je détourne cette source pour en utliser une autre.

Voyons un exemle avdec la commande sort qui normalement attend en paramètre le nom d'un fichier. Dans notre exemple nous allons lui demander de trier les éléménts que nous allons saisir nous même. Voici la commande :

$ sort << EOF
> ZZ
> FF
> GG
> HH
> KK
> AA
> YY
> EOF

 donne :

AA
FF
GG
HH
KK
YY
ZZ

Le fait de saisir "<<" modifie le comportement du clavier. Quand vous appuyez sur <Entrée> rien ne se passe. Vous êtes en mode saisie. Ce n'est que quand vous saisissez "EOF" que la commande s'éxécute. On utlise souvent "EOF" mais on peut utiliser "TOTO" ou "FOO3.

Redirections en entrée simple : Vous avez dans un fichier une liste de fichier que vous souhaitez supprimer. Voici la commande :

xargs rm < liste.txt

Va supprimer tous les fichiers lister dans le fichier "liste.txt".

Autre syntaxe possible :

$ xargs -a file rm

Fait le 18/01/2017

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer