Servus Jakob,
Dein eigentliches Problem ist, dass für nicht existierende Dateien das '*.log' wortwörtlich an rm übergeben wird - und rm findet keine Datei, die exakt *.log heißt.
Du wolltest deine Shell eigentlich bitten, dann den Glob komplett wegzulassen. Dafür gibt es nullglob: http://bash.cumulonim.biz/NullGlob.html
Grüße, Andre
On 30 June 2022 13:23:56 CEST, Jakob Mendel jm.2009@web.de wrote:
Liebe Fachleute,
LaTeX erzeugt meist etliche Hilfsdateien. Die können nach Abschluß des Projekts gelöscht werden, wofür ich mir ein bash-Alias eingerichtet (und in .bashrc abgespeichert) habe:
$ alias rmTeX='rm -i *.aux *.log'
(Das originale Alias umfaßt noch andere Dateinamen-Endungen; hier geht es nur ums Prinzip.)
Wenn es mindestens eine aux- und mindestens eine log-Datei gibt, funktioniert das Alias wie gewünscht. Fehlen solche Dateien, gibt es eine Fehlermeldung:
$ rm -f *.aux *.log $ touch 1.aux $ rmTeX rm: Normale leere Datei '1.aux' entfernen? rm: das Entfernen von '*.log' ist nicht möglich: Datei oder Verzeichnis nicht gefunden $
Diese Fehlermeldung wollte ich unterdrücken:
$ alias rmTeX='rm -i *.aux *.log 2> /dev/null'
Das funktioniert auch, ABER jetzt wird auch die von "rm -i" erzeugte Abfrage
rm: Normale leere Datei '1.aux' entfernen?
ebenfalls unterdrückt. Statt dessen wartet bash stumm auf eine Eingabe.
Läßt sich das gewünschte Verhalten (Löschdialoge ja, Fehlermeldungen nein) erreichen?
Vielen Dank Jakob
P. S. distrowatch.com gibt als aktuelle bash-Version 5.1.16 an. Bei mir läuft noch Version 4.4.20(1)-release (x86_64-pc-linux-gnu), doch halte ich das nicht für die Ursache des Problems.