Aby masowo zmienić nazwy plików na małe litery w Linuksie, możesz wykorzystać narzędzia dostępne w konsoli: polecenie rename
, skrypt Bash oraz narzędzia typu tr
. Przedstawiam szczegółowy poradnik krok po kroku, dostosowany zarówno dla początkujących, jak i bardziej zaawansowanych użytkowników.
Dlaczego warto zmieniać nazwy plików na małe litery?
- Spójność i porządek – ułatwia zarządzanie plikami i eliminuje kłopoty przy przenoszeniu danych między różnymi systemami czy serwerami.
- Kompatybilność – niektóre narzędzia (np. serwery WWW, skrypty) mogą niepoprawnie obsługiwać wielkie litery.
1. Użycie polecenia rename
Polecenie rename
(znane także jako prename
lub perl-rename
) to najprostsza i najwygodniejsza metoda do masowej zmiany nazw plików według określonego wzorca.
Instalacja:
W większości dystrybucji Linux polecenie jest już dostępne. Jeśli nie, doinstaluj je np.:
sudo apt-get install rename
Sposób użycia – zamiana liter na małe
Przykład dla katalogu roboczego:
rename 'y/A-Z/a-z/' *
Co oznacza:
y/A-Z/a-z/
– polecenie wyrażenia regularnego Perl do zamiany wszystkich wielkich liter na małe*
– wszystkie pliki w bieżącym katalogu
Uwaga – Polecenie działa na pliki, a nie katalogi.
Przetwarzanie rekurencyjne (wszystkie podkatalogi):
find . -type f -exec rename 'y/A-Z/a-z/' {} +
find . -type f
– wyszukuje wszystkie pliki w bieżącym katalogu i podkatalogach-exec rename '...' {} +
– uruchamiarename
na znalezionych plikach
2. Skrypt Bash do zamiany nazw plików
Możesz samodzielnie przygotować skrypt, dzięki któremu przetworzysz nazwy według własnych zasad – nie tylko zamieniając litery na małe, ale np. usuwając znaki narodowe czy spacje.
Przykładowy skrypt Bash:
#!/bin/bash for FILE in *; do # zamiana nazwy na małe litery NEWFILE=$(echo "$FILE" | tr '[:upper:]' '[:lower:]') if [ "$FILE" != "$NEWFILE" ]; then mv "$FILE" "$NEWFILE" fi done
Wyjaśnienie –
- Pętla przegląda wszystkie pliki w bieżącym katalogu.
- Funkcja
tr '[:upper:]' '[:lower:]'
zamienia wielkie litery na małe. - Jeżeli nazwa pliku po konwersji różni się od oryginału, wykonuje się polecenie
mv
(zmiana nazwy).
Rozszerzenie na podkatalogi –
Zamiana nazw w podkatalogach wymaga wykorzystania polecenia find
:
find . -type f -print0 | while IFS= read -r -d '' FILE; do NEWFILE=$(echo "$FILE" | tr '[:upper:]' '[:lower:]') if [ "$FILE" != "$NEWFILE" ]; then mv "$FILE" "$NEWFILE" fi done
3. Dodatkowe modyfikacje nazw plików
W skryptach możesz również:
- Usuwać polskie znaki na ich międzynarodowe odpowiedniki,
- Zastępować spacje podkreślnikami.
Przykład zamiany spacji na podkreślniki:
NEWFILE=$(echo "$FILE" | tr ' ' '_')
4. Testowanie i bezpieczeństwo
- Backup plików – przed masową zmianą, szczególnie przy wielu plikach produkcyjnych, warto wykonać kopię zapasową.
- Dry-run – Jeśli używasz nowszej wersji
rename
, możesz wywołać ją z opcją-n
aby zobaczyć, jakie zmiany zostaną dokonane (nie wykona zmian):
rename -n 'y/A-Z/a-z/' *
5. Najczęstsze problemy i ich rozwiązania
- Konflikt nazw – dwa pliki o nazwach różniących się tylko wielkością liter mogą po konwersji kolidować ze sobą (np.
Plik.txt
iplik.txt
). Rozwiązaniem jest wcześniejsza ręczna kontrola lub automatyczne dodanie unikalnych suffixów. - Brak uprawnień – działaj jako właściciel plików lub wykorzystaj
sudo
tylko tam, gdzie to konieczne.
6. Podsumowanie narzędzi
Narzędzie | Plusy | Minusy | Kiedy stosować |
---|---|---|---|
rename |
szybkość, prostota | brak szczegółowej kontroli | standardowe przypadki |
Skrypt Bash | elastyczność | wymaga pisania, testów | nietypowe potrzeby |
find + rename |
rekurencja | złożoność składni | duże drzewo katalogów |
Masowa zamiana nazw plików na małe litery w Linuxie jest prosta i dostępna dla każdego – wystarczy terminal oraz jedno z powyższych narzędzi.