#!/bin/bash
# Diretório principal a ser verificado
DIR="/totvs/protheus_data"
# Log para registrar as alterações
LOGFILE="/totvs/protheus_data/rename_to_lowercase.log"
# Contar o número total de diretórios
total_dirs=$(find "$DIR" -type d | wc -l)
processed_dirs=0
# Funcao para renomear um diretório para caixa baixa
rename_dir_to_lowercase() {
local dir="$1"
local newname="$(echo "$dir" | tr 'A-Z' 'a-z')"
if [ "$dir" != "$newname" ]; then
mv "$dir" "$newname" > /dev/null 2>> "$LOGFILE"
echo "$newname"
else
echo "$dir"
fi
}
# Função para renomear arquivos em caixa alta para caixa baixa e registrar no log
rename_files_to_lowercase() {
local dir="$1"
find "$dir" -type f | while read -r file; do
local newname="$(echo "$file" | tr 'A-Z' 'a-z')"
if [ "$file" != "$newname" ]; then
mv "$file" "$newname" > /dev/null 2>> "$LOGFILE"
echo "Arquivo alterado: $file -> $newname" >> "$LOGFILE"
fi
done
}
# Função para percorrer recursivamente os diretórios
traverse_directories() {
local directory="$1"
local newname=""
for item in "$directory"/*; do
if [ -d "$item" ]; then
# Renomear o diretório atual
newname=$(rename_dir_to_lowercase "$item")
# Renomear arquivos dentro do diretório atual e registrar no log
rename_files_to_lowercase "$newname"
# Atualizar a barra de progresso
processed_dirs=$((processed_dirs + 1))
percentage=$((processed_dirs * 100 / total_dirs))
echo -ne "Progresso: $percentage% \r"
# Recursivamente chamar a função para subdiretórios
traverse_directories "$newname"
fi
done
}
# Iniciar a função de travessia no diretório principal
traverse_directories "$DIR"
# Imprimir uma nova linha para limpar a linha de progresso
echo "" |