ne dite:
echo "hello" >> <filename>
Utilizzando l'operatore >>
aggiungerà i dati alla fine del file, mentre si utilizza il >
sovrascriverà il contenuto del file se già esistente.
Si potrebbe anche usare printf
nello stesso modo:
printf "hello" >> <filename>
Nota che può essere pericoloso utilizzare quanto sopra. Ad esempio se hai già un file e devi aggiungere i dati alla fine del file e ti sei dimenticato di aggiungere l'ultimo >
tutti i dati nel file verranno distrutti. È possibile modificare questo comportamento impostando la variabile noclobber
nel .bashrc
:
set -o noclobber
Ora, quando si tenta di fare echo "hello" > file.txt
si otterrà un avviso dicendo cannot overwrite existing file
.
Per forzare la scrittura per il file ora è necessario utilizzare la sintassi speciale:
echo "hello" >| <filename>
Si dovrebbe anche sapere che per default echo
aggiunge un carattere finale nuova linea, che può essere soppresso utilizzando il flag -n
:
echo -n "hello" >> <filename>
Riferimenti
@JonKiparsky: Mi dispiace, non ho visto che è stato scritto nella risposta ... –
Come posso fare quando il file ha bisogno dell'autorizzazione root? – UselesssCat