Переименование: верхний регистр в нижний

Main

Оценка: 87.11% - 18 Голосов

Общая

В статье рассматриваются возможности автоматического переименования файлов и папок верхнего регистра в нижний

Для демонстрации была специально создана папка TEST

 

1. Вариант с использованием команды xargs и rename вмесете

Команда:


find TEST -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

Описание:

-depth - перечисляет все содержимое папок и подпапок;
xargs -n 1 - указывает на использования не более одного аргумента на командную строку из вывода поиска.

 2

2. Создание скрипта для автоматического переименования.

Создаем файл в папке /bin


nano /bin/rename-lowercase.sh

Записываем следующий скрипт:


#!/bin/bash
#print usage
if [ -z $1 ];then
echo "Использование :$(basename $0) директория для обработки"
exit 1
fi
#обработка всех субдиректорий и файлов в каталоге
all="$(find $1 -depth)"
for name in ${all}; do
#переименование файлов и папкок в нижнем регистре
new_name="$(dirname "${name}")/$(basename "${name}" | tr '[A-Z]' '[a-z]')"
#проверка на совпадение имен
if [ "${name}" != "${new_name}" ]; then
[ ! -e "${new_name}" ] && mv -T "${name}" "${new_name}"; echo "${name} был переименован в ${new_name}" || echo "${name} небыл переименован!"
fi
done
echo
echo
#список имен директорий и файлов в нижнем регистре
echo "Директории и файлы с новыми именами в нижнем регистре:"
find $(echo $1 | tr 'A-Z' 'a-z') -depth
exit 0

Делаем созданный файл исполняемым:


chmod +x /bin/rename-lowercase.sh

Выполняем команду:


rename-lowercase.sh ИМЯ_ПАПКИ

3 

Добавить комментарий


Logo