Respostas:
Você pode anexar uma linha de texto a um arquivo usando o >>operador:
echo "hello world" >> my_file.txt
ou no seu caso
echo "alias list='ls -cl --group-directories-first'" >> config.fish
Por favor, tome nota dos diferentes tipos de citações .
-iatualizará o arquivo (caso contrário, apenas imprimirá o resultado em stdout), $é uma expressão regular que corresponderá ao final do arquivo e aanexará o seguinte texto ao nome do arquivo.
echo "hello world" >> my_file.txtnão cria uma nova última linha com HW, mas a adiciona à string da última linha.
HW@timo?
echoisso que adiciona a quebra de linha (tornando-a uma linha em oposição a apenas um monte de caracteres). Você pode desativar a quebra de linha no final com -n.
Existem muitos métodos de anexar arquivos sem abrir editores de texto, principalmente por meio de vários utilitários de processamento de texto disponíveis no Ubuntu.
tee -a config.fish <<< "alias list='ls -cl --group-directories-first'"awk 'BEGIN{ printf "alias list=\x27ls -cl --group-directories-first\x27\n" >> "config.fish" }'sed -i '$a alias list='"'"'ls -cl --group-directories-first'"'" config.fishAdicionando a resposta de Stefano , você também pode usar cat:
Usando um heredoc:
$ cat >> config.fish <<'EOF'
> alias list='ls -cl --group-directories-first'
> EOF
<<'EOF'significa "tome o seguinte como entrada, até chegar a uma linha que é justa EOF". As aspas significam receber a entrada literalmente.
Ou introduzindo a linha no stdin:
$ cat >> config.fish
Em seguida, cole ou digite a linha, pressione Enterpara ir para uma nova linha e pressione Ctrl + D para marcar o final.
>, o arquivo truncará, não acrescentará. Para um comando mais seguro, você pode usar o sed:sed -i '$a hello world' filename