Przejdź do głównej zawartości

rename


  • rename – polecenie służące do hurtowej zmiany nazw plików według określonego wzorca lub wyrażenia regularnego.

  • Występuje w różnych implementacjach:

    • Perl rename (Debian/Ubuntu) – obsługuje wyrażenia regularne Perla.
    • util-linux rename – używa prostego formatu rename from to files....
  • Zastosowania: zmiana rozszerzeń, masowe zastępowanie fragmentów nazw, konwersja wielkości liter.


Okno terminala
# Wersja Perl (Debian/Ubuntu)
rename 's/wzorzec/zamiana/' plik...
# Wersja util-linux
rename from to plik...
  • Wersja Perl: pierwszy argument to wyrażenie regularne w składni Perla.
  • Wersja util-linux: proste wyszukiwanie i zamiana fragmentu tekstu.

ParametrOpis
's/foo/bar/'Wyrażenie regularne Perla – zamienia foo na bar w nazwach.
-vTryb szczegółowy – pokazuje zmiany.
-nTryb testowy – pokazuje co by zmieniło, ale nie wykonuje.
-fWymuś nadpisywanie istniejących plików.

ParametrOpis
fromTekst do wyszukania w nazwie.
toTekst, który zastąpi from.
-vTryb szczegółowy.
-nTryb testowy.
-fWymuś nadpisywanie.

Okno terminala
# 1) Perl rename – zmiana rozszerzenia .txt na .md
rename 's/\.txt$/.md/' *.txt
Okno terminala
# 2) Perl rename – zamiana spacji na podkreślniki (testowo)
rename -n 's/ /_/g' *
Okno terminala
# 3) util-linux rename – zamiana "old" na "new" w nazwach
rename old new *.txt
Okno terminala
# 4) Zmiana wielkości liter – Perl rename
rename 'y/a-z/A-Z/' *.log

  • Dwie wersje: Składnia zależy od dystrybucji – sprawdź rename --version lub man rename.
  • Bezpieczne testowanie: Zawsze używaj -n, aby zobaczyć planowane zmiany przed wykonaniem.
  • Wyrażenia regularne: Wersja Perla umożliwia złożone transformacje, np. rename 's/(\d+)/sprintf("%03d",$1)/e' *.
  • Konflikty nazw: Bez -f polecenie odmówi nadpisania istniejących plików.

Błąd / KomunikatPrzyczynaRozwiązanie
rename: not foundBrak pakietuZainstaluj: Debian/Ubuntu – apt install rename, RHEL/CentOS – yum install util-linux.
Invalid regular expressionBłąd w wyrażeniuPopraw składnię regexu lub upewnij się, że używasz wersji Perla.
Brak zmian mimo poprawnej komendyWzorzec nie pasuje do nazwSprawdź wzorzec lub użyj trybu -v do debugowania.