Como criar um arquivo no Linux a partir da janela do terminal? [fechadas]


Respostas:


577

Dependendo do que você deseja que o arquivo contenha:

  • touch /path/to/file para um arquivo vazio
  • somecommand > /path/to/file para um arquivo que contém a saída de algum comando.

      eg: grep --help > randomtext.txt
          echo "This is some text" > randomtext.txt
    
  • nano /path/to/fileou vi /path/to/file(ou any other editor emacs,gedit etc)
    Abre o arquivo existente para edição ou cria e abre o arquivo vazio para inserir, se ele não existir


51
também, printf "some long message\nwith newlines\n" > file. Boa sorte a todos.
shellter

1
O UNIX não é um ambiente de linha de comando, mas uma família de sistemas operacionais (muito diferentes). Que dizia: Sim, isso deve funcionar na maioria dos Unices
Eugen Rieck

4
touchfuncionará no UNIX, porque é uma ferramenta padrão. O somecommandexemplo funcionará porque ele usa sintaxe padrão. A nanoamostra pode não funcionar porque um editor chamado nanopode não estar instalado (o nano não é padronizado). O editor padrão é ede pode ser usado no lugar de nano, ou você pode usar $EDITORpara usar o editor de texto padrão configurado pelo usuário ou pelo sistema, se houver um.
21412 Sorpigal

14
Além disso, você pode simplesmente dizer >/path/to/filepara criar um arquivo vazio, mesmo se não tiver touch.
21412 Sorpigal

2
@EugenRieck O que se diz permissão negada
123


92

Crie o arquivo usando cat

$ cat > myfile.txt

Agora, digite o que você quiser no arquivo:

Hello World!

CTRL-D para salvar e sair


Eu prefiro usar o gato, pois oferece uma maneira fácil e conveniente de editar o arquivo imediatamente.
Delali 26/09

Você também não pode digitar nada.
Bing Zhao

Quando tentei cat /etc/systemd/system/sample.service, dizia "não existe esse arquivo ou diretório" em vez de criar um novo arquivo sample.service.
precisa saber é o seguinte

O @TylerH cat /etc/systemd/system/sample.serviceimprime o arquivo no console cat > /etc/systemd/system/sample.serviceredireciona a entrada padrão para o arquivo (é por isso que você precisa fechar a entrada padrão pressionando control-d.
Jerry Jeremiah

40

Existem várias soluções possíveis:

Crie um arquivo vazio

touch file

>file

echo -n > file

printf '' > file

A echoversão funcionará apenas se a sua versão do echosuportar a -nopção de suprimir novas linhas. Esta é uma adição não padrão. Os outros exemplos funcionarão em um shell POSIX.

Crie um arquivo que contenha uma nova linha e nada mais

echo '' > file

printf '\n' > file

Este é um "arquivo de texto" válido porque termina em uma nova linha.

Escreva texto em um arquivo

"$EDITOR" file

echo 'text' > file

cat > file <<END \
text
END

printf 'text\n' > file

Estes são equivalentes. O $EDITORcomando supõe que você tenha um editor de texto interativo definido na variável de ambiente EDITOR e que você insere interativamente texto equivalente. A catversão pressupõe uma nova linha literal após a linha \e após a outra. Fora isso, todos eles funcionarão em um shell POSIX.

Obviamente, existem muitos outros métodos para escrever e criar arquivos também.



17

Como criar um arquivo de texto no Linux:

  • Usando touchpara criar um arquivo de texto:$ touch NewFile.txt
  • Usando catpara criar um novo arquivo: $ cat NewFile.txt
    O arquivo é criado, mas está vazio e ainda aguarda a entrada do usuário. Você pode digitar qualquer texto no terminal e, uma vez concluído, o CTRL-D o fechará ou o CTRL-C o escapará.
  • Basta usar >para criar um arquivo de texto:$ > NewFile.txt
  • Por fim, podemos usar qualquer nome de editor de texto e criar o arquivo, como:
    nano MyNewFile vi MyNewFile NameOfTheEditor NewFileName

16

haha! é fácil! tente isto:

$ touch filename

1
Como funcionou com o sudo, pude criar um novo arquivo na pasta do sistema.
Patricia

15

Você pode usar o touchcomando, como os outros disseram:

touch filename

Para escrever no arquivo na linha de comando, você pode usar echoou printf:

echo "Foo" > filename
printf "Foo" > filename

Talvez você possa ter problemas com permissões. Se você estiver recebendo o seguinte erro:, bash: filename: Permission deniedé necessário usar sudo bash -c 'echo "Foo" > filename', conforme descrito aqui: /ubuntu/103643/cannot-echo-hello-x-txt-even-with-sudo


14

1º método

echo -n > filename.txt

Segundo método

> filename.txt

Terceiro método

touch filename.txt

Para visualizar o conteúdo do arquivo

vi filename.txt

O método 2 é do tipo-> "> filename.txt"
shashwat gupta

A pergunta não está relacionada ao tópico Estouro de pilha, conforme definido na Central de Ajuda . Por favor, não responda a essas perguntas; em vez disso, você deve sinalizá-los para atenção e eles serão fechados ou migrados adequadamente.
Toby Speight

12

Isso criará um arquivo vazio com o carimbo de data / hora atual

touch filename





4

Caso vocês estejam tentando criar um novo arquivo, mas ele diz 'File does not exist':, é simplesmente porque você também está acessando um diretório, que ainda não existe. Você deve criar todos os diretórios inexistentes primeiro, usando o mkdir /path/to/dircomando


0

Para criar um arquivo em branco com propriedade e permissões usando install.

sudo install -v -oUSER -gGROUP -m640 /dev/null newFile.txt

Isso sudoé útil em muitos cenários, mas não faz parte diretamente da resposta à pergunta do OP.
Tripleee

É necessário se você não for o nome de usuário do qual você precisa do arquivo pertencente ou não a um membro do grupo.
LinuxGuru 04/04/19

Sim, existem cenários como o que, no entanto, estritamente não é o que o OP pediu.
Tripleee

0

Uma das maneiras mais fáceis e rápidas

$ vim filename
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.