Dzisiaj eksperymentowałem z kilkoma operacjami dołączania i, z ciekawości, uruchomiłem to (gdzie plik1.txt był niepusty i plik2.txt był pusty):
$ cat file1.txt >> file2.txt >> file1.txt
Kiedy zobaczyłem, że zajmuje to trochę czasu, naciśnij Ctrl+, Caby to zakończyć. Do tego czasu plik1.txt miał setki MB.
Zmiana nazw plików nie daje tego samego efektu; tylko wtedy, gdy pliki są w tej kolejności, następuje nieskończone przekierowanie. Co dokładnie się dzieje, co to powoduje?
źródło
Nie byłem w stanie odtworzyć tego w powłoce Bash:
Zostanie utworzony 1 plik o długości 0, ale następnie pojawia się powyższy komunikat:
Na podstawie odpowiedzi @ jlliagre nie jestem pewien, dlaczego otrzymuję 2 pliki. Może to zależeć od
cat
wdrożenia.EDYCJA 1
@jlliagre zaktualizował swoją odpowiedź, aby pokazać ten kod, który uważa za równoważny:
Więc teraz wiem, dlaczego robię się pusta
file2.txt
. Ta notacja jest legalna:I utworzy pusty plik.
źródło
file1.txt
zaczynając od niepustego.cat
zachowanie.