Como criar um arquivo .txt (texto) simples usando o terminal? [fechadas]

77

Só estou tentando revisar comandos básicos do terminal. Dito isto, como faço para criar um arquivo de texto usando apenas o terminal?

Mike Wentworth
fonte
Embora a pergunta seja realmente muito ampla, um tutorial rápido (vim, editores, redirecionamento de comandos do shell e assim por diante) pode ser útil para o futuro, principalmente junto com a contagem de visualizações e as pontuações de votação da postagem e as respostas. Talvez seja mais útil como um post na comunidade.
User259412 20/0518

Respostas:

106

Você não pode usar um terminal para criar um arquivo. Você pode usar um aplicativo em execução em um terminal. Apenas invocar qualquer editor não-GUI ( emacs -nw, joe, nano, vi, vim, ...).

Se você quis dizer usar a linha de comando, está perguntando como criar um arquivo usando o shell. Consulte Qual é a diferença exata entre um 'terminal', um 'shell', um 'tty' e um 'console'?

A maneira básica de criar um arquivo com o shell é com o redirecionamento de saída . Por exemplo, o comando a seguir cria um arquivo chamado foo.txtcontendo a linhaHello, world.

echo 'Hello, world.' >foo.txt

Se você deseja escrever várias linhas, aqui estão algumas possibilidades. Você pode usar printf.

printf '%s\n' 'First line.' 'Second line.' 'Third line.' >foo.txt

Você pode usar uma string literal contendo novas linhas.

echo 'First line.
Second line.
Third line.' >foo.txt

ou

echo $'First line.\nSecond line.\nThird line.' >foo.txt

Outra possibilidade é agrupar comandos.

{
  echo 'First line.'
  echo 'Second line.'
  echo 'Third line.'
} >foo.txt

Na linha de comando, você pode fazer isso mais diretamente com cat. Redirecione sua saída para o arquivo e digite a linha de entrada por linha na catentrada padrão da. Pressione Ctrl+ Dno início da linha para indicar o final da entrada.

$ cat> foo.txt 
Primeira linha. 
Segunda linha. 
Terceira linha.
Ctrl+D

Em um script, você usaria um documento aqui para obter o mesmo efeito:

cat <<EOF >foo.txt
First line.
Second line.
Third line.
EOF

Se você apenas deseja criar um arquivo vazio, pode usar o touchcomando: ele cria o arquivo se ele não existir e atualiza sua data da última modificação, se existir.

touch foo.txt

Equivalentemente:

>>foo.txt

ou seja, aberto foo.txtpara anexar, mas escreva 0 bytes para ele - isso cria o arquivo, mas não o modifica. Ao contrário touch, isso não atualiza a data da última modificação do arquivo, se ele já existir.

Para criar um arquivo vazio e remover o conteúdo do arquivo, se o arquivo já existir, você pode usar

>foo.txt
Gilles
fonte
13
touch ~/Desktop/something.txt

Isso criará um txtarquivo vazio .

Ou

echo "Hello" > ~/Desktop/somethingelse.txt

Isso criará um txtarquivo dizendo "Olá".

nano ~/Desktop/anotherfile.txt

Isto irá abrir ~/Desktop/anotherfile.txtem nano, ou se não existir, ele irá criá-lo e abri-lo no nano.

O mesmo pode ser feito simplesmente substituindo nanopor emacsou vime ele usará emacsou em vimvez denano

Mostrar nome
fonte
Também deve mencionar catcom <<, e mencionar >>.
O11c 06/10/19
Não vamos reinventar a roda. <<e >>são discutidos em Quais são os operadores de controle e redirecionamento do shell?
G-Man
9

Tudo o que é necessário para criar um arquivo vazio é:

> my.txt
SAM
fonte
2
Em algumas conchas (zsh, tcsh, ...) pelo menos :> my.txté necessário. :é um comando vazio.
Jofel
{eco 'Primeira linha'. eco 'Segunda linha'. eco 'Terceira linha.' }> foo.txt não vai funcionar #
Waterfr Villa
2

Você pode usar o programa de edição nano, vi ou emacs para criar arquivos no nível do terminal. Se você estiver usando o sistema x windows, precisará informar ao seu sistema para não usar o programa na GUI; de qualquer forma, usarei o emacs como exemplo.

Da festança; tipo:

 emacs filename.txt (press enter) - it will create an empty file with the filename specified "filename.txt". It will save "filename.txt" from which ever 
directory type in "emacs filename.txt" command.

tenha em mente que todo o sistema UNIX VI vem com ele; O emacs não, você precisará instalar o emacs. Nano, por outro lado, é mais popular; caso isso não responda, significa "nano filename.ext" e nada acontece, você precisará instalá-lo.

depois de emitir o vi filename.txt, você provavelmente criará um novo arquivo. Você deve procurar no vi, emacs ou nano como usar no google antes de começar. Como escrever um arquivo, editá-lo, usar suas ferramentas para pesquisar e substituir texto é diferente nesses programas de edição. Eu gosto do emacs de todas as opções, mas você encontrará desenvolvedores que são obcecados ou favorecem o vi e o nano

unixmiah
fonte
para nenhuma opção editor gráfico em emacs é "emacs filename.txt -NW" onde "-NW" significa nenhuma janela gráfica do usuário, nenhuma janela
unixmiah
2

Algo útil quando você está parado e precisa criar um arquivo de texto com várias linhas na linha de comando é algo como isto:

# cat <<'EOF' > textfile
> This "should"
> prove useful, 'maybe'.
> EOF
# cat textfile 
This "should"
prove useful, 'maybe'.

Você pode substituir catpor outro comando, por exemplo, grepe um padrão , e fazer com que o grep faça seu trabalho em sua entrada, o que resultaria em arquivo da mesma maneira.


fonte