&>und >&Halbäquivalenz (Clobber)
Im zshAbschnitt Manuelle Umleitungen heißt es:
sind gleichwertig.
Beide bereinigen die Datei - kürzen Sie die Datei auf 0 Byte, bevor Sie darauf schreiben, genau wie > filedies im STDIN-Fall der Fall ist.
Allerdings ist der bashmanuelle Umleitungen Abschnitt fügt hinzu , dass:
Von den beiden Formen ist die erste bevorzugt. Dies ist semantisch äquivalent zu
>word 2>&1
Wenn Sie die zweite Form verwenden, wird das Wort möglicherweise nicht zu einer Zahl oder erweitert -. In diesem Fall gelten aus Kompatibilitätsgründen andere Umleitungsoperatoren (siehe Duplizieren von Dateideskriptoren weiter unten).
Also, während Sie getaggt haben zsh, ist es wahrscheinlich eine gute Praxis, Fingergedächtnis in der ersten Form zu bekommen, sollte man jemals ein bashSkript schreiben .
>> logfile 2>&1und &>>Äquivalenz (anhängen)
Hier logfilewird nicht überschrieben, sondern am Ende der Datei zum Schreiben geöffnet, dh Modus anhängen ( O_APPEND).
Das Äquivalent in beiden {ba,z}shist:
command1 &>> logfile
In bash:
Das Format zum Anhängen der Standardausgabe und des Standardfehlers lautet:
&>>word
Dies ist semantisch äquivalent zu
>>word 2>&1
(Siehe Duplizieren von Dateideskriptoren weiter unten).
(Hinweis: Die Verwendung von &>over >&im obigen Abschnitt wird erneut empfohlen, da es nur eine Möglichkeit zum Anhängen gibt bash.)
zsherlaubt beides &>>und >>&formen.