Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Aula 04 - 07. Hora da prática - Atividade 2 - Renomeando apenas os arquivos, evitando de renomear as pastas

Olá,

Minha solução da atividade recebe como input a pasta de trabalho e o prefixo, renomeando apenas os arquivos e não eventuais pastas dentro da pasta informada

#! /bin/bash

read -p "Informe e pasta de trabalho: " pasta

if [ ! -d "$pasta" ]; then
   echo "a pasta informada não existe"
   exit 1
fi

cd "$pasta"

read -p "Informe o prefixo: " prefixo

for arquivo in *; do
   if [ -f "$arquivo" ]; then
      mv "$arquivo" "$prefixo""$arquivo"
    fi
done
1 resposta
solução!

Oi, Agostino! Como vai?

Agradeço por compartilhar.

A sua solução tá bem estruturada. Você utilizou a verificação -d pra garantir que a pasta exista antes de continuar o script e também aplicou -f dentro do for para renomear apenas arquivos, evitando alterar diretórios. Essa atenção ao tipo de item no sistema de arquivos mostra um cuidado importante ao trabalhar com automações em shell script.

Uma dica interessante para o futuro é usar o comando basename, que ajuda a manipular nomes de arquivos de forma prática quando você precisar extrair ou alterar partes do nome.


arquivo="relatorio.txt"
nome=$(basename "$arquivo")
echo $nome

Nesse exemplo, basename retorna apenas o nome do arquivo, o que pode ser útil quando você estiver lidando com caminhos completos e precisar trabalhar somente com o nome do arquivo dentro do script.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!