Assuming i have a line that i want to add to a file without opening an editor.
How could i append this line
alias list='ls -cl --group-directories-first'
to this file
config.fish
Assuming i have a line that i want to add to a file without opening an editor.
How could i append this line
alias list='ls -cl --group-directories-first'
to this file
config.fish
You can append a line of text to a file by using the
>>
operator:or in your case
Please take note of the different types of quotes.
There's plenty of methods of appending to file without opening text editors, particularly via multiple available text processing utilities in Ubuntu. In general, anything that allows us to perform
open()
syscall withO_APPEND
flag added, can be used to append to a file.GNU version of
dd
utility can append data to file withconv=notrunc oflag=append
Portably we could use something like this on the right side of pipeline:
Note the use of
bs=1
, which is to prevent short reads from pipelineThe
tee
command can be used when you need to append to file and send it to stdout or to next command in pipelineawk
has append operator>>
which is also portable and defined by POSIX specificationsWe can combine
sed
's flag$
to match the last line witha
for appending and-i
for in-place editing.We could even implement something like
dd
in Python 3:See also:
Adding to Stefano's answer, you can also use
cat
:Using a heredoc:
<<'EOF'
means "take the following as input, until you reach a line that is justEOF
". The quotes mean to take the input literally.Or inputting the line on stdin:
Then paste or type in the line, press Enter to go to a new line, then press Ctrl+D to mark the end.