Как изменить рекурсивно названия файлов с прописных букв на строчные (или наоборот)

find ./ -type f -exec sh -c 'echo "{}" "$(dirname "{}")/$(basename "{}" | tr "[A-Z]" "[a-z]")"' \;


Данная команда использует команду «find» для поиска файлов в текущей директории и ее поддиректориях. Ключ «-type f» указывает, что будут найдены только обычные файлы (исключает директории и специальные файлы).

Затем, с помощью опции «-exec» мы передаем каждый найденный файл в команду шелла «sh -c», которая выполняет следующую операцию: выводит полный путь к файлу «{}», затем директорию файла «$(dirname «{}»)», и, наконец, изменяет регистр имени файла на противоположный с помощью команды «tr» «$(basename «{}» | tr «[A-Z]» «[a-z]»)».

Итак, команда выводит полный путь к файлу, а затем новое имя файла, с измененным регистром букв.

Эта команда может быть полезна, если вам нужно изменить регистр имен файлов рекурсивно в директории. Альтернативный способ — использование команды «rename», если она доступна в вашей системе.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *