Ihr aktuelles Skript verwendet nur einen Dezimalwert - dies wird offensichtlich in den Wert ohne führende Nullen übersetzt.
Sie müssten die Zeichenfolge auf die Länge von 4 Zeichen mit führenden Nullen auffüllen. Verwenden Sie dazu Backticks ``
, um das Ergebnis des printf-Aufrufs abzurufen printf %04d $j
.
Daher sollten Sie den vollständigen Befehl haben:
for i in *.jpg; do let j+=1; mkdir `printf %04d $j`; done
Quelle: StackOverflow: bash - Auffüllen von Nullen in einer Zeichenfolge
(Natürlich finden Sie auch die weiteren Antworten auf diese Frage, wenn Sie eine eingehendere Lösung wünschen, aber dies funktioniert definitiv perfekt für diesen Anwendungsfall.)