cat >> filename
This is text, perhaps pasted in from some other source.
Or else entered at the keyboard, doesn't matter.
^D
Essentiellement, vous pouvez vider le texte de votre choix dans le fichier. CTRL-D envoie un signal de fin de fichier, qui termine l'entrée et vous renvoie au shell.
L'autre moyen possible est :
echo "text" | tee -a filename >/dev/null
Le -a
sera ajouté à la fin du fichier.
Si besoin sudo
, utilisez :
echo "text" | sudo tee -a filename >/dev/null
Que diriez-vous :
echo "hello" >> <filename>
Utilisation du >>
l'opérateur ajoutera des données à la fin du fichier, tout en utilisant le >
écrasera le contenu du fichier s'il existe déjà.
Vous pouvez également utiliser printf
de la même manière :
printf "hello" >> <filename>
Notez qu'il peut être dangereux d'utiliser ce qui précède. Par exemple, si vous avez déjà un fichier et que vous devez ajouter des données à la fin du fichier et que vous oubliez d'ajouter le dernier >
toutes les données du fichier seront détruites. Vous pouvez modifier ce comportement en définissant le noclobber
variable dans votre .bashrc
:
set -o noclobber
Maintenant, lorsque vous essayez de faire echo "hello" > file.txt
vous recevrez un avertissement disant cannot overwrite existing file
.
Pour forcer l'écriture dans le fichier, vous devez maintenant utiliser la syntaxe spéciale :
echo "hello" >| <filename>
Il faut aussi savoir que par défaut echo
ajoute un caractère de fin de ligne qui peut être supprimé en utilisant le -n
drapeau :
echo -n "hello" >> <filename>
Références
echo(1) - Linux man page
noclobber variable
I/O Redirection