Bash: Unterschied zwischen> und >> Operator? [geschlossen]

37

Ich bin Neuling und weiß nicht viel über bash.my Instruktor bat mich, Katzenskript zu machen und die Ausgabe zu beobachten und dann zu sagen, was ist> Operator und was ist der Unterschied zwischen> & >> Operator? und ich bin nicht in der Lage zu finden, keine Hilfe bitte :)

jumbo18
quelle
Sie könnten mit temporären Dateien experimentieren, um den Unterschied zwischen >> und> herauszufinden.
halp

Antworten:

60

Das Zeichen ">" wird verwendet, um die Ausgabe eines Programms auf etwas anderes als stdout umzuleiten (Standardausgabe, die standardmäßig das Terminal ist).

Das >> hängt an eine Datei an oder erstellt die Datei, wenn sie nicht vorhanden ist.
Das> überschreibt die Datei, wenn sie existiert, oder erstellt sie, wenn sie nicht existiert.

In beiden Fällen wird die Ausgabe des Programms in der Datei gespeichert, deren Name nach dem Umleitungsoperator angegeben wird.

Beispiele:
$ ls > allmyfiles.txt Erstellt die Datei "allmyfiles.txt" und füllt sie mit der Verzeichnisliste aus dem Befehl ls

$ echo "End of directory listing" >> allmyfiles.txt fügt "End of directory listing" am Ende der Datei "allmyfiles.txt" hinzu

$ > newzerobytefile Erstellt eine neue Null-Byte-Datei mit dem Namen "newzerobytefile" oder überschreibt eine vorhandene Datei mit demselben Namen (so dass sie null Byte groß ist).

andyhky
quelle
3
Weitere beeindruckende E / A-
Tim Bielawa,
0

=> Der> Operator überschreibt die Datei, falls vorhanden. Andernfalls wird eine neue Datei erstellt. EX cat> example1 => Wenn die Datei 'example1' vorhanden ist, wird sie überschrieben. Andernfalls wird eine neue Datei erstellt. => Der >> Operator wird zum Anhängen verwendet das Ende der Datei EX cat >> example1

Godani Bhavesh
quelle
4
Das sind genau die gleichen Informationen wie zuvor bei andyh_ky. Es hat keinen Sinn, eine vorherige Antwort zu wiederholen. Es hat auch keinen Sinn, einen sinnlosen Kommentar hinzuzufügen.
John Gardeniers
-4

Kannst du die Handbuchseite von bash nicht finden ? Geben Sie einfach an der Eingabeaufforderung man bash ein .

adamo
quelle
Sie können versuchen, Ihrem Kommentar nützlichen Inhalt hinzuzufügen. Es gab nur einen Blogeintrag mit Antworten im RTFM-Stil. Blog.serverfault.com/post/1306724710/rtfm Vielleicht können Sie erwähnen, dass die Operatoren> und >> für die E / A- Umleitung verwendet werden. Tldp.org/LDP/abs/html/io -redirection.html Ebenso wird <verwendet, um eine Datei in stdin einzulesen.
Tim Bielawa
Ich bin mit @Tim einverstanden. Ich bin alle für die Lernmethode "Einem Mann das Fischen beibringen". In diesem Fall aber, und vor allem für einen Anfänger, gibt es null Anzeichen dafür , dass Ausgang Redirectoren durch die Shell des Benutzers behandelt werden.
EEAA
-1 weil die bash manpage eine der am schwersten zu befolgenden ist, mit denen ich mich regelmäßig beschäftige.
Sparr
Ach komm schon! Das ist kein RTFM! Sie können zur Manpage von bash gehen (und ich habe einen Link dazu bereitgestellt), drücken Sie Strg-F und geben Sie >> ein. Als Erstes wird die Verwendung von >> angezeigt. Außerdem ist diese Frage Hausaufgabe: Beantworten wir Hausaufgaben (es war) beantwortet von andyh_ky) oder zeigen wir wo die antwort ist?
Adamo
Wie sagt man ihm, er solle nach "der Manualpage von Bash" suchen, nicht nach "Read The F ****** Manual"? Es ist sogar das Wort Handbuch drin!
Sam Cogan