Questão Como criar um arquivo vazio na linha de comando


Como posso criar um arquivo vazio na linha de comando?


163
2018-01-14 19:03


origem




Respostas:


Use o touch comando:

The touch utility sets the modification and access times of files to the
current time of day. If the file doesn't exist, it is created with
default permissions.

Exemplo:

touch newfile

202
2018-01-14 19:06



Você pode usar touch newfile.txt ou alguma outra extensão também (se você precisar especificar a extensão). - gotqn
@gotqn para python touch newfile.py e para ruby ​​newfile.rb? - kouty
Mas se newfile já existe e não está vazio, então touch newfile vai deixar você com um não vazio Arquivo. Talvez não seja o que você queria. - Camille Goudeseune
@CamilleGoudeseune eu acho que se newfile já existe, touch comando só vai atualize o timestamp do arquivo (que é o comando exatamente para) sem editar o conteúdo do arquivo. - C0deDaedalus
Você não precisa pensar nisso; é verdade! Mas não é o que a pergunta perguntou. - Camille Goudeseune


> newfile

Vou também crio um arquivo vazio. Se o arquivo já existir, será truncado (esvaziado). Para manter o conteúdo do arquivo, use >> para anexar como em:

>> file

Mesmo se o arquivo existir, o conteúdo não será alterado.

Editar: Se você não tem nenhum conteúdo para digitar, este é mais rápido:

user@host$ :> newfile
user@host$ :>> new_or_existing_file

Nota. : é o comando aqui. Não faz parte do prompt.


75
2018-01-14 19:38



Agora isso é novo. É específico do bash? - Tshepang
Acho que não. Qualquer shell que permita o redirecionamento do fluxo de saída para um arquivo deve suportar isso. Isso truncará o arquivo se ele já existir. toque é seguro para usar se você não quiser esvaziá-lo. - balki
Uau, agora eu acho que isso é chamado de enganar o sistema - banarun


cat /dev/null > file1.ext 

a maneira exata, há também uma outra maneira

echo "" > file2.ext 

A diferença é file1.ext será zero bytes e file2.ext seria um byte. Você pode verificar isso por

ls -l file*.*

12
2018-01-15 06:56



Não, 'echo "">' não cria um arquivo vazio, ele cria um arquivo contendo uma nova linha. Se por algum motivo quiser usar o echo para criar um arquivo vazio, você terá que usar 'echo -n "">', ou simplesmente 'echo -n>' - andol


Usando vim editor você também pode criar um arquivo vazio.

vim filename

Então salve

:wq

7
2018-04-03 09:41



Bem, neste caso, não qualquer editor de texto, mas vim. - Nephente


O comando

echo -n > file

cria um arquivo vazio, se a sua versão do echo suporta o comutador -n.

Ou você poderia usar printf

printf '' > file

2
2018-06-22 09:47





Python one-liner:

$ python -c 'import sys,os;f=sys.argv[1];os.utime(f,None) if os.path.exists(f) else open(f,"a").close' myfile.txt

Basicamente, a implementação em Python de touch.

Nós podemos diminuir isso com isso:

$ python -c 'import sys,os;f=sys.argv[1];'$'\n''with open(f,"a"): os.utime(f,None)' mysecondfile.txt 

0
2017-07-10 11:17