To jest mój problem: mam folder z 500 obrazami o nazwie:
1.jpg
2.jpg
3.jpg
i tak dalej..
Skopiowałem ten folder i teraz muszę zmienić nazwy tych samych zdjęć z 501 na 1000, ale w następujący sposób:
1.jpg becomes 501.jpg
2.jpg becomes 502.jpg
3.jpg becomes 503.jpg
....
Kiedy używam mojego standardowego polecenia zmiany nazwy:
i=501;for img in $(find . -iname '*.jpg'); do echo -n "Converting $img"; mv $img $i.jpg && echo $i && ((i++)); done
Zamawia obrazy od 501 do 1000, ale wszystkie są rozproszone:
23.jpg becomes 501.jpg,
66.jpg becomes 502.jpg
...
(są w odpowiedniej kolejności, ale je pomieszają)
Wiem, że prawdopodobnie brakuje mi jednego polecenia ...
command-line
rename
batch-rename
Lek przeciwbólowy
źródło
źródło
Odpowiedzi:
Wypróbuj Thunar , który jest domyślnym menedżerem plików dla Xfce. Jest bardzo lekki i ma poręczne narzędzie do zmiany nazwy. Możesz zainstalować Thunar, uruchamiając następujące polecenie w Terminalu:
Prawdopodobnie będziesz mógł również zainstalować z oprogramowania Ubuntu.
Jak korzystać z narzędzia
Oprócz numerowania to narzędzie obsługuje następujące działania:
źródło
pyrenamer
działa idealnie i to jest to, czego używam do zmiany nazw piętrowych, gdy chcę, aby GUI porównał przed / po wyjściu.find
Polecenie wyszukuje pliki w katalogu „” zamówienie (23.jpg
,66.jpg
...). możesz umieścić|sort
po znalezieniu.Ale twoje metody są nadmiernie złożone.
źródło
for i in {1..500}; do ...
byłoby łatwiej pszczoły.Z
rename
rozkazem.Lub w czystej postaci
bash
i używając rozszerzenia parametrów powłoki .źródło
Jeśli zrozumiałem, o co pytasz poprawnie, myślę, że możesz to zrobić za pomocą domyślnego narzędzia zmiany nazwy:
-vn
Po testowaniu należy usunąć przełącznik (verbose - no action), aby zmiana była skuteczna.źródło
rename
jest powiązanyprename(1)
zperl
pakietem, który nie obsługuje wszystkich tych opcji wiersza poleceń.'s/^(\d+)/sprintf("%d",$1+500)/e'
. Zaktualizuję odpowiednio swoją odpowiedź. Dzięki.Kolejny sposób na osiągnięcie tego za pomocą polecenia powłoki
count = 1; dla i w
ls
; do mv $ i CN $ ((count ++)). $ {i ## *.}; gotowyźródło