Einzeiler: Dateien durchnummerieren
Machmal kommt es vor, dass man eine Sammlung von Dateien einfach dem Namen nach durchnummerieren möchte, um z.B. verräterische Dateinamen loszuwerden. (Beispiel: Mein konkreter Anlass war das Hochladen von Bildern auf ein Online-Portal, die Dateinamen enthielten aber Informationen zu Datum, Ort usw., ein weiteres Beispiel wäre die Nummerierung nach dem Erstellungsdatum.)
Der folgende Einzeile löst das Problem auf einfache Weise.
Das ganze ist eher eine Demonstration, dass sich einfach zu formulierende Aufgaben (Numeriere alle Dateien) durchaus auch mit recht einfachen Mitteln umsetzen lassen.
Das Skript
NUMBER=0; for file in $(ls); do NUMBER=$(($NUMBER+1)); mv $file ${NUMBER}.endung; done;
Erläuterungen
Ok, der Übersicht halber sind es doch 5 Zeilen geworden, aber auf einer Eingabezeile könnte man es durchaus in eine Zeile packen.
Das ganze gestaltet sich ziemlich einfach. Die Schleife benennt einfach alle im ls-Kommando aufgelisteten Dateien mittels des mitgeführten Zählers um. Das ls-Kommando lässt sich natürlich beliebig anpassen, wie auch der Name der Zieldatei.
Zu beachten ist vielleicht noch die Syntax der Rechenoperation in Bash: $(( AUSDRUCK )).
Einen Kommentar schreiben