...
Expandir |
---|
title | Clique para visualizar o script |
---|
|
Informações |
---|
title | O que este script faz? |
---|
| O script irá percorrer o diretório especificado e seus subdiretórios, renomeando todos os diretórios e arquivos para letras minúsculas. As alterações serão registradas no arquivo de log (definido como LOGFILE). |
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 usar o Scriptscript:
- 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:
Bloco de código |
---|
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:
Bloco de código |
---|
./rename_to_lowercase.sh |
...
Exemplo da execução do arquivo:
Image Added
Esse procedimento para ser executado em 70GB de protheus_dataO script irá percorrer o diretório especificado e seus subdiretórios, renomeando todos os diretórios e arquivos para letras minúsculas. As alterações serão registradas no arquivo de log.