Hier gibt es zwei Probleme. Zuerst deklarieren Sie die Variable "i", verwenden jedoch "$ file", die nicht vorhanden ist. Auch wenn dies der Fall ist, lautet das zweite Problem, dass bash "von links nach rechts" liest. Das bedeutet, dass zuerst "> $ file" angezeigt wird und der Inhalt der Datei überschrieben wird. Wenn Sie also die richtigen Variablen verwenden, hätten Sie Ihre Daten verloren.
Also, ein Fehler hat dich vor dem anderen gerettet, du Glücklicher, Glückspilz :)
Versuchen Sie etwas wie:
for i in *.txt ; do fold -w 1 $i > sillytmpfile; mv sillytmpfile $i; done