[Jednolinijkowce] Bash: Masowa zmiana nazw plików (lowercase/uppercase)

Terminal

Wpis ten otwiera cykl jednolinijkowców, czyli użytecznych komend (czy też raczej zestawów komend) rozwiązujących niejeden frapujący problem. One-liners, bo tak zwą się w oryginale, dotyczą języków skryptowych wykorzystywanych w konsoli (linii poleceń).

W tego typu wpisach nie będę się rozwodził na temat zasad działania owych poleceń, będę tylko podawał do czego służą i jak są skonstruowane. Czasem dodam tylko jakąś małą informację, jeśli będzie potrzeba.

Na pierwszy ogień idzie komenda zamieniająca nazwy plików w katalogu (i jego podkatalogach).

Wymuszenie małych liter:

for f in `find . -type f`; do mv $f $(dirname $f)/`echo $(basename $f) | tr '[:upper:]' '[:lower:]'`; done

Wymuszenie dużych liter:

for f in `find . -type f`; do mv $f $(dirname $f)/`echo $(basename $f) | tr '[:lower:]' '[:upper:]'`; done

Oczywiście . (katalog bieżący) możemy zamienić na dowolną ścieżkę. Ten jednolinijkowiec różni się od tych krążących po sieci tym, że do konwersji bierze pod uwagę jedynie nazwę pliku, a nie całą ścieżkę.

Skomentuj "[Jednolinijkowce] Bash: Masowa zmiana nazw plików (lowercase/uppercase)":

Musisz się zalogować, aby móc dodać komentarz.