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

449

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

Raffian
quelle
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

Eugen Rieck
quelle
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
122

Verwenden Sie Touch

touch filename
Mariusz Jamro
quelle
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

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

sorpigal
quelle
25

Erstellen Sie außerdem eine leere Datei:

touch myfile.txt
andreapier
quelle
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
DATENWISSENSCHAFT
quelle
16

Haha! es ist einfach! Versuche dies:

$ touch filename
Roman Newaza
quelle
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

user3753202
quelle
14

1. Methode

echo -n > filename.txt

2. Methode

> filename.txt

3. Methode

touch filename.txt

Anzeigen des Dateiinhalts

vi filename.txt
Shashwat Gupta
quelle
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
Christy George
quelle
10

So einfach ist das :

> filename

IvanM
quelle
10
touch filename

Für permission deniedFehler verwenden Sie den sudoBefehl als:

sudo touch filename
Pradeep Kumar Prabaharan
quelle
6

Ich mag den Nano- Befehlszeileneditor (Text):

nano filename
Sam Perry
quelle
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 .

Sebastian
quelle
0

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

sudo install -v -oUSER -gGROUP -m640 /dev/null newFile.txt
LinuxGuru
quelle
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

quelle