rename to narzędzie do masowej zmiany nazw plików — zamiast klikać po jednym w menedżerze plików albo pisać pętlę z mv, podajesz jeden wzorzec i lecisz po setkach plików naraz. Najczęściej spotkasz wersję perlową (pakiet rename/prename na Debianie i Ubuntu), w której pierwszym argumentem jest pełnoprawne wyrażenie Perla — np. s/old/new/ — działające na nazwie każdego pliku. To czyni z rename małego scyzoryka do porządkowania bałaganu w katalogu.
Składnia i najważniejsze opcje
Podstawowa składnia wersji perlowej wygląda tak: rename [opcje] wyrażenie pliki...
-n— tryb próbny (dry run): wypisuje, co zostałoby przemianowane, ale niczego nie rusza. Twój najlepszy przyjaciel przed każdą akcją.-v— verbose: pokazuje nazwy plików, które faktycznie zostały zmienione (stara → nowa).-f— pozwala nadpisać istniejący plik docelowy (domyślnierenametego nie zrobi).-e wyrażenie— pozwala podać kod jako opcję; można użyć kilku-epo kolei.- Brak listy plików — nazwy zostaną wczytane ze standardowego wejścia, więc działa w parze z
findixargs.
Przykłady użycia
rename -n 's/\.jpeg$/.jpg/' *.jpeg— najpierw podgląd: jak zmieniłyby się rozszerzenia z.jpegna.jpg. Zdejmij-n, żeby wykonać.rename 's/ /_/g' *.txt— zamienia wszystkie spacje w nazwach na podkreślniki (flagag= wszystkie wystąpienia).rename 'y/A-Z/a-z/' *— sprowadza nazwy plików do małych liter (operatory///= transliteracja).rename 's/^/2026_/' *.csv— dodaje przedrostek2026_na początku każdej nazwy.rename 's/(\d+)/sprintf("%03d",$1)/e' img*.png— uzupełnia numery zerami (img7→img007); flagaewykonuje prawą stronę jako kod.
Częste błędy i pułapki
Największa pułapka to dwie różne komendy o tej samej nazwie. Wersja perlowa bierze wyrażenie regularne, a wersja z pakietu util-linux (czasem dostępna jako rename.ul) ma zupełnie inną składnię: rename wyrażenie zamiennik pliki... i robi zwykłe podstawienie tekstu, bez regexów. Jeśli s/old/new/ nie działa, sprawdź rename --version — prawdopodobnie masz wariant util-linux. Tam przydadzą się -a (wszystkie wystąpienia), -l (ostatnie), -o (nie nadpisuj) i -n (próba).
Druga mina: rename nie tworzy katalogów. Jeśli wyrażenie wstawi / w nazwę, dostaniesz błąd lub plik wyląduje nie tam, gdzie myślisz. I zawsze, ale to zawsze, odpalaj najpierw z -n — przy * jeden zły regex potrafi przemianować pół katalogu.
Powiązane komendy: mv, find, mmv, basename.