Mam katalog, a niektóre rozszerzenia plików są pisane wielkimi literami (.JPG) zamiast małymi.
Chcę się upewnić, że każdy plik ma rozszerzenie .jpg. Jak mam to zrobić z wiersza poleceń powłoki?
Mam katalog, a niektóre rozszerzenia plików są pisane wielkimi literami (.JPG) zamiast małymi.
Chcę się upewnić, że każdy plik ma rozszerzenie .jpg. Jak mam to zrobić z wiersza poleceń powłoki?
Odpowiedzi:
Korzystanie z rozszerzenia parametru powłoki :
for f in *.JPG; do
mv "${f}" "${f%%.JPG}.jpg"
done
Te "
znaki będą dbać o nazwach zawierających spacje, jak często robić fotografie.
/path/to/*.JPG
. Oczywiście,
Jeśli możesz korzystać z zewnętrznych narzędzi (nie tylko bash), sprawdź rename
polecenie!
rename .JPG .jpg *
rename
Jest częścią util-linux
.
perl
która akceptuje różne argumenty, aby zrobić to samo.
Proponuję rzucić okiem na mmv
polecenie. Nadaje się idealnie do tego rodzaju zadań. W twoim scenariuszu byłoby to:
#> mmv "*.JPG" "#1.jpg"
Strona podręcznika jest pełna przykładów, więc nie trzeba długo przyzwyczajać się do niej.
W systemach Debian można go zainstalować z:
#> aptitude install mmv
jeśli nie masz spacji w nazwach plików:
for f in *.JPG; do mv $f `echo $f | sed 's/JPG$/jpg/'`; done
mv
.