Cómo crear un archivo vacío desde la línea de comando

190

¿Cómo puedo crear un archivo vacío desde la línea de comando?

NES
fuente

Respuestas:

237

Usa el touchcomando:

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.

Ejemplo:

touch newfile
Isaias
fuente
14
También puede usar touch newfile.txto alguna otra extensión (si necesita especificar la extensión).
gotqn
@gotqn para python touch newfile.py y para ruby ​​newfile.rb?
kouty
3
Pero si newfileya existe y no está vacío, touch newfilete dejará con un archivo vacío . Quizás no sea lo que querías.
Camille Goudeseune
@CamilleGoudeseune Creo que si newfileya existe, el touchcomando solo actualizará la marca de tiempo del archivo (que es exactamente para qué comando) sin editar el contenido del archivo.
C0deDaedalus
No tienes que pensar eso; ¡es verdad! Pero no es lo que hizo la pregunta.
Camille Goudeseune
81
> newfile

También creará un archivo vacío. Si el archivo ya existe, se truncará (se vaciará). Para mantener el contenido del archivo, use >>para agregar como en:

>> file

Incluso si el archivo existe, los contenidos no se modificarán.

Editar : si no tiene ningún contenido para escribir, este es más rápido:

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

Nota. :Es el comando aquí. No es parte del aviso.

balki
fuente
Ahora eso es nuevo. ¿Es específico de bash?
tshepang
No lo creo. Cualquier shell que permita la redirección de la secuencia de salida a un archivo debería admitir esto. Esto truncará el archivo si ya existe. Touch es seguro de usar si no desea vaciarlo.
balki
Wow, pienso que ahora se llama engañar al sistema
banarun
12
cat /dev/null > file1.ext 

la forma exacta también hay otra manera

echo "" > file2.ext 

La diferencia es file1.ext será cero bytes y file2.ext sería un byte. Puedes verificar esto por

ls -l file*.*
indianwebdevil
fuente
10
No, 'echo "">' no crea un archivo vacío, crea un archivo que contiene una nueva línea. Si por alguna razón desea utilizar echo para crear un archivo vacío, deberá usar 'echo -n "">', o simplemente 'echo -n>'
andol el
7

Usando el vimeditor también puede crear un archivo vacío.

vim filename

Entonces guardar

:wq
nrider
fuente
Bueno, en este caso no hay ningún editor de texto pero vim.
Nephente
2

El comando

echo -n > file

crea un archivo vacío, si su versión de echoadmite el modificador -n.

O podrías usar printf

printf '' > file
AB
fuente
0

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

Básicamente, la implementación de Python touch.

Podemos hacerlo más corto con esto:

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