Dies ist mein Problem: Ich habe einen Ordner mit 500 Bildern mit dem Namen:
1.jpg
2.jpg
3.jpg
und so weiter..
Ich habe diesen Ordner kopiert und muss jetzt dieselben Bilder von 501 in 1000 umbenennen, aber in der folgenden Reihenfolge:
1.jpg becomes 501.jpg
2.jpg becomes 502.jpg
3.jpg becomes 503.jpg
....
Wenn ich meinen Standard-Umbenennungsbefehl verwende:
i=501;for img in $(find . -iname '*.jpg'); do echo -n "Converting $img"; mv $img $i.jpg && echo $i && ((i++)); done
Es werden Bilder von 501 bis 1000 bestellt, aber alle sind verstreut:
23.jpg becomes 501.jpg,
66.jpg becomes 502.jpg
...
(Sie sind in der richtigen Reihenfolge, aber es verwechselt sie)
Ich weiß, es ist wahrscheinlich ein Befehl, den ich vermisse ...
command-line
rename
batch-rename
Schmerzmittel
quelle
quelle
Antworten:
Probieren Sie Thunar aus , den Standard-Dateimanager für Xfce. Es ist sehr leicht und wird mit einem praktischen Bulk-Umbenennungswerkzeug geliefert. Sie können Thunar installieren, indem Sie den folgenden Befehl im Terminal ausführen:
Sie können wahrscheinlich auch von Ubuntu Software installieren.
Verwendung des Dienstprogramms
Neben der Nummerierung unterstützt dieses Dienstprogramm die folgenden Aktionen:
quelle
pyrenamer
funktioniert dieser einwandfrei und wird für die Umbenennung von Kojen verwendet, wenn eine GUI vor / nach der Ausgabe verglichen werden soll.Der
find
Befehl findet Dateien in 'Verzeichnis' bestellen (23.jpg
,66.jpg
, ...). Sie könnten eine|sort
nach dem Fund setzen.Aber Ihre Methoden sind überkomplex.
quelle
for i in {1..500}; do ...
wäre einfacher gewesen.Mit
rename
Befehl.Oder in reiner
bash
und mit Shell-Parametererweiterung .quelle
Wenn ich verstanden habe, was Sie richtig fragen, können Sie dies mit dem Standard-Umbenennungstool tun:
Sie sollten den
-vn
Schalter (ausführlich - keine Aktion) nach dem Testen entfernen , damit die Änderung wirksam wird.quelle
rename
ist eine Verknüpfung mitprename(1)
demperl
Paket vorhanden, das nicht alle diese Befehlszeilenoptionen unterstützt.'s/^(\d+)/sprintf("%d",$1+500)/e'
. Ich werde meine Antwort entsprechend aktualisieren. Vielen Dank.Eine andere Möglichkeit, dies mit nur einem Shell-Befehl zu erreichen
count = 1; für i in
ls
; mache mv $ i CN $ ((count ++)). $ {i ## *.}; erledigtquelle