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.