redirection_unix.md
· 1.0 KiB · Markdown
Bruto
# Écrire dans un fichier (écrase le contenu existant)
```bash
commande > fichier.txt
```
# Ajouter à la suite d'un fichier (sans écraser)
```bash
commande >> fichier.txt
```
# Rediriger uniquement les erreurs vers un fichier
```bash
commande 2> erreurs.log
```
# Cumuler les erreurs (sans écraser)
```bash
commande 2>> erreurs.log
```
# Fusionner stderr dans stdout (ordre important !)
```bash
commande > output.log 2>&1
```
# Raccourci bash/zsh pour fusionner stdout + stderr
```bash
commande &> output.log
```
# Supprimer les erreurs (trou noir)
```bash
commande 2>/dev/null
```
# Supprimer stdout ET stderr
```bash
commande &>/dev/null
```
# Piege a éviter :
## ✅ Correct — stderr suit stdout dans le fichier
```bash
commande > output.log 2>&1
```
## ❌ Incorrect — stderr reste dans le terminal !
```bash
commande 2>&1 > output.log
```
# Bonus
## Empêcher > d'écraser un fichier existant
```bash
set -o noclobber # à mettre dans ~/.bashrc
```
## Forcer l'écrasement malgré noclobber
```bash
commande >| fichier.txt
```
Écrire dans un fichier (écrase le contenu existant)
commande > fichier.txt
Ajouter à la suite d'un fichier (sans écraser)
commande >> fichier.txt
Rediriger uniquement les erreurs vers un fichier
commande 2> erreurs.log
Cumuler les erreurs (sans écraser)
commande 2>> erreurs.log
Fusionner stderr dans stdout (ordre important !)
commande > output.log 2>&1
Raccourci bash/zsh pour fusionner stdout + stderr
commande &> output.log
Supprimer les erreurs (trou noir)
commande 2>/dev/null
Supprimer stdout ET stderr
commande &>/dev/null
Piege a éviter :
✅ Correct — stderr suit stdout dans le fichier
commande > output.log 2>&1
❌ Incorrect — stderr reste dans le terminal !
commande 2>&1 > output.log
Bonus
Empêcher > d'écraser un fichier existant
set -o noclobber # à mettre dans ~/.bashrc
Forcer l'écrasement malgré noclobber
commande >| fichier.txt