J'expérimentais aujourd'hui avec quelques opérations d'ajout et, dans ma curiosité, j'ai exécuté ceci (où file1.txt n'était pas vide et file2.txt était vide):
$ cat file1.txt >> file2.txt >> file1.txt
Quand je l'ai vu prendre un certain temps, j'ai appuyé sur Ctrl+ Cpour y mettre fin. À ce moment-là, file1.txt faisait des centaines de Mo.
Changer les noms de fichiers ne produit pas le même effet; ce n'est que lorsque les fichiers sont dans cet ordre que la redirection infinie se produit. Que se passe-t-il exactement qui cause cela?
Je n'ai pas pu reproduire cela dans un shell Bash:
1 fichier est créé avec une longueur de 0 mais je reçois le message ci-dessus:
Sur la base de la réponse de @ jlliagre, je ne sais pas pourquoi je reçois les 2 fichiers. Cela peut dépendre de la
cat
mise en œuvre.EDIT # 1
@jlliagre a mis à jour sa réponse pour afficher ce code qu'il déclare équivalent:
Alors maintenant, je sais pourquoi je reçois le vide
file2.txt
. Cette notation est légale:Et va créer un fichier vide.
la source
file1.txt
commençant non vide.cat
comportements.