Auf der Kommandozeile erstellst du neue Dateien direkt auf der Kommandozeile. Je nach Situation stehen dir verschiedene Methoden zur Verfügung: leere Dateien, Dateien mit Inhalt oder große Testdateien.
Voraussetzung: Schreibrechte
Für die Erstellung einer Datei benötigst du Schreibrechte im Zielverzeichnis. Ohne diese Berechtigung erhältst du eine Fehlermeldung.
Mit touch eine leere Datei erstellen
Der touch-Befehl erstellt leere Dateien oder aktualisiert Zeitstempel bestehender Dateien.
touch datei.txt
Existiert datei.txt bereits, werden nur die Zeitstempel aktualisiert. Mehrere Dateien erstellst du durch Leerzeichen getrennt:
touch datei1.txt datei2.txt datei3.txt
Mit Umleitung eine Datei erstellen
Der Umleitungsoperator > schreibt die Ausgabe eines Befehls in eine Datei. Ohne Befehl davor erstellst du eine leere Datei:
> datei.txt
Das ist die kürzeste Methode zur Dateierstellung. Vorsicht: Der >-Operator überschreibt bestehende Dateien ohne Rückfrage.
Der >>-Operator hängt Inhalte an eine bestehende Datei an, statt sie zu überschreiben.
Mit cat eine Datei erstellen
Der cat-Befehl liest und verkettet Dateien. Mit Umleitung erstellst du eine neue Datei und gibst den Inhalt direkt ein:
cat > datei.txt
Nach Eingabe des Textes beendest du mit Strg+D. Der Inhalt wird gespeichert.
Mit echo eine Datei erstellen
Der echo-Befehl gibt Text aus. In Kombination mit Umleitung schreibst du diesen Text direkt in eine Datei:
echo "Erste Zeile" > datei.txt
Für eine leere Datei mit einem Zeilenumbruch:
echo > datei.txt
Mit >> hängst du weiteren Text an:
echo "Zweite Zeile" >> datei.txt
Mit Heredoc mehrzeilige Dateien erstellen
Heredoc ermöglicht die Eingabe mehrerer Zeilen in einem Block. Das ist praktisch für Shell-Skripte:
cat > datei.txt << EOF
Erste Zeile
Zweite Zeile
Dritte Zeile
EOF
Alles zwischen << EOF und EOF wird in die Datei geschrieben. Der Begrenzer (hier EOF) kann beliebig gewählt werden. Heredoc unterstützt Variablen und Befehlssubstitution.
Große Dateien für Tests erstellen
Für Geschwindigkeitstests oder als Platzhalter benötigst du manchmal große Dateien.
Mit dd
Der dd-Befehl erzeugt eine 1-GB-Datei:
dd if=/dev/zero of=testdatei.bin bs=1 count=0 seek=1G
Mit fallocate
Schneller geht es mit fallocate:
fallocate -l 1G testdatei.bin
fallocate reserviert den Speicherplatz sofort, ohne jeden Block einzeln zu schreiben.
Zusammenfassung
| Methode | Anwendung |
|---|---|
touch | Leere Dateien erstellen, Zeitstempel aktualisieren |
> | Schnelle leere Datei, Ausgabe umleiten |
cat > | Interaktiv Inhalt eingeben |
echo > | Einzeiler mit Text erstellen |
| Heredoc | Mehrzeilige Dateien in Skripten |
dd, fallocate | Große Testdateien erzeugen |
Wähle die Methode, die zu deinem Anwendungsfall passt. Für leere Dateien ist touch am gebräuchlichsten, für Dateien mit Inhalt echo oder Heredoc.