Как переименовать все папки и файлы в нижний регистр в Linux?

Краткая версия с использованием rename команды "rename":

find my_root_dir -depth -exec rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

Это позволяет избежать rename проблем с переименованием renaming каталогов перед файлами и lowercase попыткой переместить файлы rename в несуществующие каталоги lowercase (например, "A/A" в "a/a").

Или более lowercase подробный вариант без использования renaming "rename".

for SRC in `find my_root_dir -depth`
do
    DST=`dirname "${SRC}"`/`basename "${SRC}" | tr '[A-Z]' '[a-z]'`
    if [ "${SRC}" != "${DST}" ]
    then
        [ ! -e "${DST}" ] && mv -T "${SRC}" "${DST}" || echo "${SRC} was not renamed"
    fi
done

P.S.

Последнее обеспечивает большую renaming гибкость при использовании linux команды перемещения (например, "svn mv").

linux

rename

lowercase

2022-11-15T20:25:21+00:00
Вопросы с похожей тематикой, как у вопроса:

Как переименовать все папки и файлы в нижний регистр в Linux?