Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Expandir
titleClique 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:

    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

...