Wie erstelle ich eine Datei unter Linux im Terminalfenster? [geschlossen]


449

Was ist der einfachste Weg, um eine Datei im Linux-Terminal zu erstellen?


1
$>newfilekann auch Datei erstellen.
EsmaeelE

Antworten:


577

Je nachdem, was die Datei enthalten soll:

  • touch /path/to/file für eine leere Datei
  • somecommand > /path/to/file für eine Datei, die die Ausgabe eines Befehls enthält.

      eg: grep --help > randomtext.txt
          echo "This is some text" > randomtext.txt
  • nano /path/to/fileoder vi /path/to/file(oder any other editor emacs,gedit etc)
    Es öffnet entweder die vorhandene Datei zum Bearbeiten oder erstellt und öffnet die leere Datei, die eingegeben werden soll, falls sie nicht vorhanden ist


51
auch , printf "some long message\nwith newlines\n" > file. Allen viel Glück.
Shellter

1
UNIX ist keine Befehlszeilenumgebung, sondern eine Familie von (sehr unterschiedlichen) Betriebssystemen. Das heißt: Ja, das sollte auf den meisten Unices funktionieren
Eugen Rieck

4
touchfunktioniert unter UNIX, da es sich um ein Standardwerkzeug handelt. Das somecommandBeispiel funktioniert, da es die Standardsyntax verwendet. Das nanoBeispiel funktioniert möglicherweise nicht, da ein benannter Editor nanomöglicherweise nicht installiert ist (Nano ist nicht standardisiert). Der Standardeditor ist edund könnte anstelle von verwendet werden nano, oder Sie können $EDITORIhren vom Benutzer oder System konfigurierten Standardtexteditor verwenden, falls vorhanden.
Sorpigal

14
Außerdem können Sie einfach sagen >/path/to/file, dass Sie eine leere Datei erstellen möchten, auch wenn Sie keine haben touch.
Sorpigal

2
@ EugenRieck Was ist, wenn es heißt, Erlaubnis verweigert
123


92

Erstellen Sie die Datei mit cat

$ cat > myfile.txt

Geben Sie nun einfach alles in die Datei ein, was Sie wollen:

Hello World!

STRG-D zum Speichern und Beenden


Ich bevorzuge die Verwendung von cat, da dies eine einfache und bequeme Möglichkeit bietet, die Datei sofort zu bearbeiten.
Delali

Sie können auch nichts eingeben.
Bing Zhao

Als ich es versuchte cat /etc/systemd/system/sample.service, hieß es "keine solche Datei oder kein solches Verzeichnis", anstatt eine neue sample.service-Datei zu erstellen.
TylerH

@TylerH cat /etc/systemd/system/sample.servicedruckt die Datei auf die Konsole und cat > /etc/systemd/system/sample.serviceleitet die Standardeingabe in die Datei um (weshalb Sie die Standardeingabe durch Drücken von Strg-D schließen müssen.
Jerry Jeremiah

40

Es gibt mehrere mögliche Lösungen:

Erstellen Sie eine leere Datei

touch file

>file

echo -n > file

printf '' > file

Die echoVersion funktioniert nur, wenn Ihre Version von echoden -nSchalter unterstützt , um Zeilenumbrüche zu unterdrücken. Dies ist eine nicht standardmäßige Ergänzung. Die anderen Beispiele funktionieren alle in einer POSIX-Shell.

Erstellen Sie eine Datei mit einem Zeilenumbruch und nichts anderem

echo '' > file

printf '\n' > file

Dies ist eine gültige "Textdatei", da sie in einer neuen Zeile endet.

Schreiben Sie Text in eine Datei

"$EDITOR" file

echo 'text' > file

cat > file <<END \
text
END

printf 'text\n' > file

Diese sind gleichwertig. Der $EDITORBefehl setzt voraus, dass in der Umgebungsvariablen EDITOR ein interaktiver Texteditor definiert ist und dass Sie interaktiv äquivalenten Text eingeben. Die catVersion setzt eine wörtliche neue Zeile nach \und nach jeder anderen Zeile voraus . Ansonsten funktionieren diese alle in einer POSIX-Shell.

Natürlich gibt es auch viele andere Methoden zum Schreiben und Erstellen von Dateien.



17

So erstellen Sie eine Textdatei unter Linux:

  • Verwenden touchzum Erstellen einer Textdatei:$ touch NewFile.txt
  • Verwenden catzum Erstellen einer neuen Datei: $ cat NewFile.txt
    Die Datei wird erstellt, ist jedoch leer und wartet immer noch auf die Eingabe des Benutzers. Sie können einen beliebigen Text in das Terminal eingeben. Sobald Sie fertig sind, wird STRG-D geschlossen, oder STRG-C entgeht Ihnen.
  • Einfach >zum Erstellen einer Textdatei verwenden:$ > NewFile.txt
  • Zuletzt können wir einen beliebigen Texteditornamen verwenden und dann die Datei erstellen, z.
    nano MyNewFile vi MyNewFile NameOfTheEditor NewFileName

16

Haha! es ist einfach! Versuche dies:

$ touch filename

1
Dies funktionierte mit sudo, so dass ich eine neue Datei im Systemordner erstellen konnte.
Patricia

15

Sie können den touchBefehl verwenden, wie die anderen sagten:

touch filename

So schreiben Sie auf Datei in der Befehlszeile, können Sie verwenden , echooder printf:

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

Möglicherweise können Sie Probleme mit Berechtigungen haben. Wenn Sie die folgende Fehlermeldung erhalten: bash: filename: Permission deniedmüssen Sie Folgendes verwenden sudo bash -c 'echo "Foo" > filename': /ubuntu/103643/cannot-echo-hello-x-txt-even-with-sudo


14

1. Methode

echo -n > filename.txt

2. Methode

> filename.txt

3. Methode

touch filename.txt

Anzeigen des Dateiinhalts

vi filename.txt

2 Methode ist Typ-> "> Dateiname.txt"
Shashwat Gupta

Die Frage ist nicht zum Thema für Stapelüberlauf, wie in der Hilfe definiert . Bitte beantworten Sie solche Fragen nicht. Stattdessen sollten Sie sie zur Beachtung markieren, damit sie geschlossen oder entsprechend migriert werden.
Toby Speight

12

Dadurch wird eine leere Datei mit dem aktuellen Zeitstempel erstellt

touch filename





4

Falls ihr versucht, eine neue Datei zu erstellen, aber es heißt: 'File does not exist'Es liegt einfach daran, dass ihr auch auf ein Verzeichnis zugreift, das noch nicht existiert. Sie müssen zuerst alle nicht vorhandenen Verzeichnisse mit dem mkdir /path/to/dirBefehl erstellen .


0

So erstellen Sie mithilfe von install eine leere Datei mit Besitz und Berechtigungen.

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

Dies sudoist in vielen Szenarien nützlich, aber nicht direkt Teil der Antwort auf die Frage des OP.
Tripleee

Es wird benötigt, wenn Sie nicht der Benutzername sind, für den Sie die Datei benötigen, die einem Mitglied der Gruppe gehört oder nicht.
LinuxGuru

Ja, es gibt solche Szenarien, die jedoch streng genommen nicht den Anforderungen des OP entsprechen.
Tripleee

0

Einer der einfachsten und schnellsten Wege

$ vim filename
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.