cat >> filename
This is text, perhaps pasted in from some other source.
Or else entered at the keyboard, doesn't matter.
^D
In sostanza, puoi scaricare qualsiasi testo desideri nel file. CTRL-D invia un segnale di fine file, che termina l'input e ti riporta alla shell.
Un altro modo possibile è:
echo "text" | tee -a filename >/dev/null
Il -a
verrà aggiunto alla fine del file.
Se hai bisogno di sudo
, usa:
echo "text" | sudo tee -a filename >/dev/null
Che ne dici di:
echo "hello" >> <filename>
Usando il >>
l'operatore aggiungerà i dati alla fine del file, utilizzando il >
sovrascriverà il contenuto del file se già esistente.
Puoi anche usare printf
allo stesso modo:
printf "hello" >> <filename>
Si noti 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 dimentichi di aggiungere l'ultimo >
tutti i dati nel file verranno distrutti. Puoi modificare questo comportamento impostando noclobber
variabile nel tuo .bashrc
:
set -o noclobber
Ora quando provi a fare echo "hello" > file.txt
riceverai un avviso che dice cannot overwrite existing file
.
Per forzare la scrittura nel file ora devi usare la sintassi speciale:
echo "hello" >| <filename>
Dovresti anche sapere che per impostazione predefinita echo
aggiunge un carattere di nuova riga finale che può essere soppresso utilizzando -n
bandiera:
echo -n "hello" >> <filename>
Riferimenti
echo(1) - Linux man page
noclobber variable
I/O Redirection