Ich habe heute mit einigen Append-Operationen experimentiert und aus Neugier Folgendes ausgeführt (wobei file1.txt nicht leer und file2.txt leer war):
$ cat file1.txt >> file2.txt >> file1.txt
Als ich sah, dass es eine Weile dauerte, drücke ich Ctrl+ C, um es zu beenden. Zu diesem Zeitpunkt war file1.txt Hunderte von MB groß.
Das Wechseln der Dateinamen hat nicht den gleichen Effekt. Nur wenn sich die Dateien in dieser Reihenfolge befinden, erfolgt die unendliche Umleitung. Was genau bewirkt das?
quelle
Ich konnte dies nicht in einer Bash-Shell reproduzieren:
1 Datei wird mit 0 Länge erstellt, aber dann erhalte ich die obige Meldung:
Aufgrund der Antwort von @ jlliagre bin ich mir nicht sicher, warum ich die 2 Dateien bekomme. Dies kann von der
cat
Implementierung abhängen .EDIT # 1
@jlliagre hat seine Antwort aktualisiert, um diesen Code anzuzeigen, den er als äquivalent angibt:
Jetzt weiß ich, warum ich die leeren bekomme
file2.txt
. Diese Notation ist legal:Und wird eine leere Datei erstellen.
quelle
file1.txt
einem nicht leeren Start.cat
Verhalten besser zu verstehen .