Ajouter la sortie avec tee
Par défaut, la commande tee écrase le fichier cible chaque fois qu'elle est utilisée. Cependant, dans de nombreux scénarios, vous pourriez vouloir ajouter de nouvelles informations à un fichier existant plutôt que de remplacer son contenu. C'est là que l'option -a (append, ajouter) s'avère pratique.
Comprendre l'option d'ajout
Rendez-vous dans le répertoire du projet si vous n'y êtes pas déjà :
cd /home/labex/project
Commençons par créer un fichier avec des informations sur le système :
uname -a | tee system_info.log
Cette commande affichera les informations sur votre système dans le terminal et les enregistrera dans le fichier system_info.log. La sortie ressemblera à ceci (votre sortie peut différer) :
Linux ubuntu 5.15.0-1031-aws #35-Ubuntu SMP Fri Feb 10 02:14:02 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Maintenant, vérifions le contenu du fichier :
cat system_info.log
Vous devriez voir les mêmes informations sur le système.
Maintenant, ajoutons plus d'informations à ce fichier en utilisant l'option -a :
echo "Date and time: $(date)" | tee -a system_info.log
Cela affichera quelque chose comme :
Date and time: Wed May 3 14:22:34 UTC 2023
Le drapeau -a indique à tee d'ajouter la sortie au fichier au lieu de l'écraser.
Vérifions à nouveau le contenu du fichier :
cat system_info.log
Vous devriez maintenant voir à la fois les informations sur le système et la date :
Linux ubuntu 5.15.0-1031-aws #35-Ubuntu SMP Fri Feb 10 02:14:02 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Date and time: Wed May 3 14:22:34 UTC 2023
Ajoutons encore plus d'informations à notre fichier journal :
echo "Disk usage:" | tee -a system_info.log
df -h | tee -a system_info.log
Cela affichera les informations sur l'utilisation du disque et les ajoutera à notre fichier journal. La sortie variera en fonction de votre système, mais elle pourrait ressembler à ceci :
Disk usage:
Filesystem Size Used Avail Use% Mounted on
/dev/root 19G 5.8G 13G 32% /
tmpfs 494M 0 494M 0% /dev/shm
tmpfs 198M 1.1M 197M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda15 105M 5.2M 100M 5% /boot/efi
tmpfs 100M 4.0K 100M 1% /run/user/1000
Vérifions une fois de plus le contenu de notre fichier journal :
cat system_info.log
Vous devriez maintenant voir toutes les informations que nous avons ajoutées :
Linux ubuntu 5.15.0-1031-aws #35-Ubuntu SMP Fri Feb 10 02:14:02 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Date and time: Wed May 3 14:22:34 UTC 2023
Disk usage:
Filesystem Size Used Avail Use% Mounted on
/dev/root 19G 5.8G 13G 32% /
tmpfs 494M 0 494M 0% /dev/shm
tmpfs 198M 1.1M 197M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda15 105M 5.2M 100M 5% /boot/efi
tmpfs 100M 4.0K 100M 1% /run/user/1000
Comprendre la structure de la commande
La syntaxe pour ajouter des données avec tee est la suivante :
command | tee -a filename
Où :
command est n'importe quelle commande qui produit une sortie
| (pipe) envoie la sortie de la commande à tee
tee est la commande elle-même
-a est l'option pour ajouter au fichier au lieu de l'écraser
filename est le nom du fichier où la sortie sera ajoutée
Cette approche est particulièrement utile pour :
- Construire des fichiers journaux au fil du temps
- Capturer la sortie de plusieurs commandes dans un seul fichier
- Maintenir un enregistrement des états ou des opérations du système