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?

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

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.


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*.*

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

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

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 
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.