...
Para enfrentar esse desafio, podemos usar um script simples em shell para renomear todos os diretórios e arquivos em letras minúsculas. Abaixo está um script de exemplo que pode ser usado para realizar essa tarefa:
Expandir |
---|
title | Clique para visualizar o script |
---|
|
Bloco de código |
---|
#!/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 "" |
|
Como Usar o Script:
- Salve o script em um arquivo com extensão .sh, por exemplo, rename_to_lowercase.sh. No teste realizado, o script foi salvo no diretório /totvs/protheus_data/ usando o editor vim. Você pode usar outros editores, como o nano ou o gedit, se preferir.
- Dê permissão de execução ao script: chmod +x rename_to_lowercase.sh.
- Edite o script para especificar o diretório que deseja verificar e o nome do arquivo de log.
- Execute o script: ./rename_to_lowercase.sh.
...