Come creare un file in Linux dalla finestra del terminale? [chiuso]


Risposte:


577

A seconda di cosa si desidera che il file contenga:

  • touch /path/to/file per un file vuoto
  • somecommand > /path/to/file per un file contenente l'output di alcuni comandi.

      eg: grep --help > randomtext.txt
          echo "This is some text" > randomtext.txt
  • nano /path/to/fileoppure vi /path/to/file(o any other editor emacs,gedit etc)
    Apre quello esistente per la modifica o crea e apre il file vuoto da inserire, se non esiste


51
inoltre printf "some long message\nwith newlines\n" > file,. Buona fortuna a tutti.
Shellter,

1
UNIX non è un ambiente a riga di comando, ma una famiglia di sistemi operativi (molto diversi). Detto questo: Sì, questo dovrebbe funzionare sulla maggior parte degli Unices
Eugen Rieck,

4
touchfunzionerà in UNIX, perché è uno strumento standard. L' somecommandesempio funzionerà perché utilizza la sintassi standard. L' nanoesempio potrebbe non funzionare perché un editor chiamato nanopotrebbe non essere installato (nano non è standardizzato). L'editor standard è ede potrebbe essere utilizzato al posto di nano, oppure è possibile utilizzare $EDITORper utilizzare l'editor di testo predefinito configurato dall'utente o dal sistema, se presente.
sorpigal,

14
Inoltre, potresti semplicemente dire >/path/to/filedi creare un file vuoto, anche se non lo hai touch.
sorpigal,

2
@EugenRieck E se dicesse che l'autorizzazione è stata negata
123


92

Crea il file usando cat

$ cat > myfile.txt

Ora, digita quello che vuoi nel file:

Hello World!

CTRL-D per salvare ed uscire


Preferisco usare cat poiché offre un modo semplice e conveniente per modificare immediatamente il file.
Delali,

Non puoi nemmeno digitare nulla.
Bing Zhao,

Quando ho provato cat /etc/systemd/system/sample.service, ha detto "nessun file o directory" anziché creare un nuovo file sample.service.
TylerH,

@TylerH cat /etc/systemd/system/sample.servicestampa il file sulla console cat > /etc/systemd/system/sample.servicereindirizza l'input standard al file (motivo per cui è necessario chiudere l'input standard premendo control-d.
Jerry Jeremiah

40

Esistono diverse soluzioni possibili:

Crea un file vuoto

touch file

>file

echo -n > file

printf '' > file

La echoversione funzionerà solo se la tua versione echosupporta-n switch per sopprimere le nuove righe. Questa è un'aggiunta non standard. Gli altri esempi funzioneranno tutti in una shell POSIX.

Crea un file contenente una nuova riga e nient'altro

echo '' > file

printf '\n' > file

Questo è un "file di testo" valido perché termina con una nuova riga.

Scrivi il testo in un file

"$EDITOR" file

echo 'text' > file

cat > file <<END \
text
END

printf 'text\n' > file

Questi sono equivalenti. Il $EDITORcomando presuppone che sia stato definito un editor di testo interattivo nella variabile di ambiente EDITOR e che si immetta interattivamente un testo equivalente. La catversione presume una nuova riga letterale dopo \e dopo l'altra riga. A parte questo, funzioneranno tutti in una shell POSIX.

Naturalmente ci sono anche molti altri metodi per scrivere e creare file.



17

Come creare un file di testo su Linux:

  • Utilizzo touchper creare un file di testo:$ touch NewFile.txt
  • Utilizzo catper creare un nuovo file: $ cat NewFile.txt
    il file viene creato, ma è vuoto e attende ancora l'input dell'utente. Puoi digitare qualsiasi testo nel terminale, e una volta fatto CTRL-D lo chiuderà, o CTRL-C ti sfuggirà.
  • Semplicemente usando >per creare un file di testo:$ > NewFile.txt
  • Infine, possiamo utilizzare qualsiasi nome dell'editor di testo e quindi creare il file, ad esempio:
    nano MyNewFile vi MyNewFile NameOfTheEditor NewFileName

16

haha! è facile! prova questo:

$ touch filename

1
Funzionava con sudo, quindi sono stato in grado di creare un nuovo file nella cartella di sistema.
Patricia,

15

Puoi usare il touchcomando, come dicevano gli altri:

touch filename

Per scrivere su file dalla riga di comando, puoi usare echoo printf:

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

Forse potresti avere problemi con le autorizzazioni. Se viene visualizzato il seguente errore:, bash: filename: Permission deniedè necessario utilizzare sudo bash -c 'echo "Foo" > filename', come descritto qui: /ubuntu/103643/cannot-echo-hello-x-txt-even-with-sudo


14

1o metodo

echo -n > filename.txt

2o metodo

> filename.txt

3o metodo

touch filename.txt

Per visualizzare il contenuto del file

vi filename.txt

2 metodo è type-> "> nomefile.txt"
shashwat gupta

La domanda non è in argomento per StackTranslate.it, come definito nel Centro assistenza . Per favore, non rispondere a tali domande; invece, dovresti segnalarli per attirare l'attenzione e verranno chiusi o migrati in modo appropriato.
Toby Speight,






4

Nel caso in cui state provando a creare un nuovo file, ma si dice: 'File does not exist'è semplicemente perché si accede anche a una directory, che non esiste ancora. Devi prima creare tutte le directory inesistenti, usando il mkdir /path/to/dircomando


0

Per creare un file vuoto con proprietà e autorizzazioni mediante l'installazione.

sudo install -v -oUSER -gGROUP -m640 /dev/null newFile.txt

Il sudoè utile in molti scenari, ma non direttamente parte della risposta alla domanda del PO.
Tripleee

È necessario se non si è il nome utente di cui si necessita il file di proprietà o meno di un membro del gruppo.
LinuxGuru

Sì, ci sono scenari come quello che, tuttavia, in senso stretto non è quello che l'OP ha chiesto.
Tripleee

0

Uno dei modi più semplici e veloci

$ vim filename
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.