Переименование: верхний регистр в нижний
Общая
В статье рассматриваются возможности автоматического переименования файлов и папок верхнего регистра в нижний
Для демонстрации была специально создана папка TEST
1. Вариант с использованием команды xargs и rename вмесете
Команда:
find TEST -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
Описание:
-depth - перечисляет все содержимое папок и подпапок;
xargs -n 1 - указывает на использования не более одного аргумента на командную строку из вывода поиска.
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 ИМЯ_ПАПКИ
- Просмотров: 9204