Ich versuche, eine Reihe von Dateien in meiner Shell stapelweise umzubenennen, und obwohl es im Internet viel Material darüber gibt, kann ich anscheinend keine Lösung für meinen speziellen Fall finden.
Ich habe eine Reihe von Dateien, die (was zu sein scheint) eine „timestamp-id“ haben:
abc_128390.png
abc_138493.png
abc_159084.png
...
die ich gegen einen Counter eintauschen möchte:
abc_001.png
abc_002.png
abc_003.png
...
Mein (viel) naiver Ansatz wäre so etwas wie:
mv abc_*.png abc_{001..123}.png
Außerdem konnte ich keinen Weg finden, es mit einem for
zum Laufen zu bringen -Schleife.
FWIW, leider rename
ist auf diesem speziellen System nicht verfügbar.
Jeder Rat wäre sehr willkommen!
Akzeptierte Antwort:
Mir fällt keine Lösung ein, die das Inkrementieren des Zählers cleverer handhabt, aber das hier sollte funktionieren:
i=0
for fi in abc_??????.png; do
mv "$fi" abc_$i.png
i=$((i+1))
done
Es sollte sicher sein, abc_*.png
zu verwenden weil es vor dem ersten mv
expandiert wird wird immer ausgeführt, aber es kann nützlich sein, sehr spezifisch zu sein, indem Sie nur Dateien mit einem sechsstelligen Zeitstempel am Ende wollen.