¿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


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


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.



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

16

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

$ touch filename

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


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

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






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


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

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