Ubuntu - Datei mit Inhalt erstellen?

... komplette Frage anzeigen

3 Antworten

Hallo

Wie erstelle ich die Datei xyz.sh nach ~/ mit dem Inhalt echo Test mim Terminal?

Also...

echo "Test" 

gibt den String Test aus

>

Ist eine Ausgabe-Umleitung, so das

echo "Test" > ~/xyz.sh

bedeutet das die Ausgabe, die sonst auf dem Bildschirm erscheint, in eine Datei xyz.sh umgelenkt/geschrieben wird die sich im Heimatverzeichnis des ausführenden Benutzers befindet.

  • Wenn ein normaler Benutzer das macht dann landet die Datei in /home/$USER/
  • Wenn aber root das Kommando ausführt, dann landet die Datei in /root

Ist die Datei xyz.sh bereits vorhanden, so wird sie ohne Nachfrage überschrieben!

Wenn man nichts überschreiben möchte, dann nimmt man statt dessen

echo "Test" >> ~/xyz.sh

In diesem Fall wird eine eventuell vorhandene Datei xyz.sh  im angegebenen Pfad nicht überschrieben sondern der String Test wird angehängt.

Möchte man nun aber die Ausgabe sowohl auf stdout (meist der Bildschirm) haben und gleichzeitig in eine Datei, dann ist das Programm tee das richtige hierfür:

echo "Test" | tee ~/xyz.sh

tee überschreibt hierbei ebenfalls eine eventuell vorhandene Datei xyz.sh  im angegebenen Pfad. Um das auch hierbei zu verhindern gibt es den Parameter -a (für Append, also anhängen):

echo "Test" | tee -a ~/xyz.sh

Geht das vllt mit touch?

Nein, mit touch wird eine leere Datei erstellt, oder man kann vorhandene Dateien, resp. deren Datumsangaben verändern.

touch ~/xyz.sh

Ohne Parameterübergabe an touch würde der Zeitstempel auf die aktuelle Zeit & Datum gesetzt werden.

Linuxhase

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Linuxhase
26.11.2016, 14:14

Bei genauerem lesen sollte es so aussehen:

echo "echo Test" > ~/xyz.sh
2

sudo echo "echo Test" > /xy.sh

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Linuxhase
26.11.2016, 14:06

@Kartoffelrudi95

sudo echo "echo Test" > /xy.sh

  1.  Sollte der Pfad auf ~/ lauten und nicht auf /
  2. Der Dateiname soll auch xyz.sh und nicht xy.sh sein
  3. Wieso bitte sollte man dann dafür root Rechte benötigen?

Linuxhase

1

Die Antwort wurde zwar schon genannt, aber a du anscheinend noch kaum Erfahrung mit der Shell hast, würde ich dir diisen Link empfehlen https://wiki.ubuntuusers.de/Shell/#Grundlagen (Das funktioniert auch alles in Ubuntu Touch und unter Android).

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Linuxhase
26.11.2016, 14:31

Nicht vergessen zu erwähnen dass das alles für jede GNU/Linux-Distribution gültig ist und keineswegs nur für Ubuntu gilt. Es gilt auch für alle Shells in allen unixoiden Systemen.

0

Was möchtest Du wissen?