¿Cómo crear un archivo en Linux desde la ventana de terminal? [cerrado]

Respuestas:

577

Dependiendo de lo que desea que contenga el archivo:

  • touch /path/to/file para un archivo vacío
  • somecommand > /path/to/file para un archivo que contiene la salida de algún comando.

      eg: grep --help > randomtext.txt
          echo "This is some text" > randomtext.txt
  • nano /path/to/fileo vi /path/to/file(o any other editor emacs,gedit etc)
    Abre el archivo existente para editarlo o crea y abre el archivo vacío para ingresar, si no existe

Eugen Rieck
fuente
51
también printf "some long message\nwith newlines\n" > file,. Buena suerte a todos.
Shellter
1
UNIX no es un entorno de línea de comandos, sino una familia de sistemas operativos (muy diferentes). Dicho esto: Sí, esto debería funcionar en la mayoría de los Unices
Eugen Rieck
44
touchfuncionará en UNIX, porque es una herramienta estándar. El somecommandejemplo funcionará porque usa la sintaxis estándar. Es nanoposible que la muestra no funcione porque un editor llamado nanopuede no estar instalado (nano no está estandarizado). El editor estándar es edy podría usarse en lugar de nano, o podría usarlo $EDITORpara usar su editor de texto predeterminado configurado por el usuario o el sistema, si lo hay.
sorigal
14
Además, simplemente podría decir >/path/to/fileque cree un archivo vacío, incluso si no lo tiene touch.
sorigal
2
@EugenRieck ¿Qué pasa si dice permiso denegado
123
92

Crea el archivo usando cat

$ cat > myfile.txt

Ahora, solo escribe lo que quieras en el archivo:

Hello World!

CTRL-D para guardar y salir

raffian
fuente
Prefiero usar cat, ya que ofrece una manera fácil y conveniente de editar el archivo de inmediato.
Delali
Tampoco puedes escribir nada.
Bing Zhao
Cuando lo intenté cat /etc/systemd/system/sample.service, decía "no existe tal archivo o directorio" en lugar de crear un nuevo archivo sample.service.
TylerH
@TylerH cat /etc/systemd/system/sample.serviceimprime el archivo a la consola, cat > /etc/systemd/system/sample.serviceredirige la entrada estándar al archivo (es por eso que debe cerrar la entrada estándar presionando control-d.
Jerry Jeremiah
40

Hay varias soluciones posibles:

Crea un archivo vacío

touch file

>file

echo -n > file

printf '' > file

La echoversión funcionará solo si su versión de echoadmite el -ncambio para suprimir nuevas líneas. Esta es una adición no estándar. Los otros ejemplos funcionarán en un shell POSIX.

Cree un archivo que contenga una nueva línea y nada más.

echo '' > file

printf '\n' > file

Este es un "archivo de texto" válido porque termina en una nueva línea.

Escribir texto en un archivo

"$EDITOR" file

echo 'text' > file

cat > file <<END \
text
END

printf 'text\n' > file

Estos son equivalentes. El $EDITORcomando asume que tiene un editor de texto interactivo definido en la variable de entorno EDITOR y que ingresa de manera interactiva texto equivalente. La catversión supone una nueva línea literal después de la línea \y después de la otra. Aparte de eso, todo esto funcionará en un shell POSIX.

Por supuesto, también hay muchos otros métodos para escribir y crear archivos.

sorigal
fuente
25

Además, cree un archivo vacío:

touch myfile.txt
andreapier
fuente
17

Cómo crear un archivo de texto en Linux:

  • Utilizando touchpara crear un archivo de texto:$ touch NewFile.txt
  • Utilizando catpara crear un nuevo archivo: $ cat NewFile.txt
    el archivo se crea, pero está vacío y aún espera la entrada del usuario. Puede escribir cualquier texto en el terminal, y una vez hecho esto, CTRL-D lo cerrará o CTRL-C se le escapará.
  • Simplemente usando >para crear un archivo de texto:$ > NewFile.txt
  • Por último, podemos usar cualquier nombre de editor de texto y luego crear el archivo, como:
    nano MyNewFile vi MyNewFile NameOfTheEditor NewFileName
CIENCIA DE LOS DATOS
fuente
16

¡jaja! ¡es fácil! prueba esto:

$ touch filename
Roman Newaza
fuente
1
Esto funcionó con sudo, por lo que pude crear un nuevo archivo en la carpeta del sistema.
Patricia
15

Puede usar el touchcomando, como dijeron los demás:

touch filename

Para escribir en el archivo en la línea de comandos, puede usar echoo printf:

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

Tal vez pueda tener problemas con los permisos. Si obtiene el siguiente error: bash: filename: Permission denieddebe usar sudo bash -c 'echo "Foo" > filename', como se describe aquí: /ubuntu/103643/cannot-echo-hello-x-txt-even-with-sudo

usuario3753202
fuente
14

1er método

echo -n > filename.txt

2do método

> filename.txt

3er método

touch filename.txt

Para ver el contenido del archivo

vi filename.txt
shashwat gupta
fuente
2 método es type-> "> filename.txt"
shashwat gupta
La pregunta no es sobre el tema de Stack Overflow como se define en el centro de ayuda . Por favor no conteste tales preguntas; en su lugar, debe marcarlos para llamar la atención y se cerrarán o migrarán adecuadamente.
Toby Speight
12

Esto creará un archivo vacío con la marca de tiempo actual

touch filename
Christy George
fuente
10

Simple como eso :

> filename

IvanM
fuente
10
touch filename

para permission deniederror, use el sudocomando como:

sudo touch filename
Pradeep Kumar Prabaharan
fuente
6

Me gusta el editor de línea de comandos nano (texto):

nano filename
Sam Perry
fuente
4

En caso de que estén intentando crear un nuevo archivo, pero dice: 'File does not exist'es simplemente porque también están accediendo a un directorio, que aún no existe. Primero debe crear todos los directorios inexistentes, utilizando el mkdir /path/to/dircomando

Sebastian
fuente
0

Para crear un archivo en blanco con propiedad y permisos mediante la instalación.

sudo install -v -oUSER -gGROUP -m640 /dev/null newFile.txt
LinuxGuru
fuente
El sudoes útil en muchos escenarios, pero no es directamente parte de la respuesta a la pregunta del OP.
tripleee
Es necesario si no es el nombre de usuario que necesita el archivo que pertenece o no es miembro del grupo.
LinuxGuru
Sí, hay escenarios como ese que, sin embargo, estrictamente hablando no son lo que solicitó el OP.
tripleee
0

Una de las formas más fáciles y rápidas.

$ vim filename

fuente