1
resposta

[Sugestão] Sugestão de solução

Apenas gostaria de deixar aqui a minha solução para a tarefa 2 (adicionar sufixo ou prefixo). Talvez possa ajudar alguém.

A existência do comando "basename" me ajudou a resolver um problema com o prefixo já que a variável "arquivo", nesse caso, vem junto com o seu caminho, impossibilitando utilizar a solução mv "$arquivo" "$prefixo$arquivo"

Sugestões/feedback são bem-vindas

#! /bin/bash

read -p "Insira o diretorio (nao insira '/' no fim!): " diretorio
read -p "Deseja adicionar um sufixo ou prefixo? " condition

if [ ! -d "$diretorio" ]; then
    echo "O diretório especificado não existe."
    exit 1
fi

case "$condition" in
        "prefixo")
                read -p "Digite o prefixo desejado: " prefixo
                for arquivo in "$diretorio"/*; do
                        nome_base=$( basename "$arquivo" )
                        mv "$arquivo" "$diretorio/$prefixo$nome_base"
                done
        ;;
        "sufixo")
                read -p "Digite o sufixo desejado: " sufixo
                for arquivo in "$diretorio"/*; do
                        mv "$arquivo" "$arquivo$sufixo"
                done
        ;;
        *)
                echo "Erro. Tem de escolher apenas entre prefixo e sufixo."
                exit 1
        ;;
esac
1 resposta

Olá Geovanny!

Muito obrigado por compartilhar sua solução! É sempre ótimo ver a colaboração entre colegas de curso. Seu script está bem estruturado e utiliza o comando basename de maneira eficiente para lidar com o prefixo. Isso realmente resolve o problema de adicionar um prefixo quando o caminho completo do arquivo é fornecido.

Aqui vão algumas sugestões e feedbacks que podem aprimorar ainda mais o seu script:

  1. Validação de Entrada: Você pode adicionar validações adicionais para garantir que o usuário insira valores válidos para prefixo e sufixo.

  2. Tratamento de Espaços em Branco: Se os nomes dos arquivos ou diretórios contiverem espaços em branco, o script pode falhar. Você pode usar aspas duplas para garantir que os nomes sejam tratados corretamente.

  3. Mensagens ao Usuário: Adicionar mensagens informativas ao usuário pode melhorar a usabilidade do script.

Aqui está uma versão aprimorada do seu script com essas sugestões:

#!/bin/bash

read -p "Insira o diretorio (nao insira '/' no fim!): " diretorio
read -p "Deseja adicionar um sufixo ou prefixo? " condition

if [ ! -d "$diretorio" ]; then
    echo "O diretório especificado não existe."
    exit 1
fi

case "$condition" in
    "prefixo")
        read -p "Digite o prefixo desejado: " prefixo
        if [ -z "$prefixo" ]; then
            echo "Prefixo não pode ser vazio."
            exit 1
        fi
        for arquivo in "$diretorio"/*; do
            nome_base=$(basename "$arquivo")
            novo_nome="$diretorio/$prefixo$nome_base"
            if [ -e "$novo_nome" ]; then
                echo "Erro: O arquivo $novo_nome já existe."
                exit 1
            fi
            mv "$arquivo" "$novo_nome"
            echo "Renomeado $arquivo para $novo_nome"
        done
        ;;
    "sufixo")
        read -p "Digite o sufixo desejado: " sufixo
        if [ -z "$sufixo" ]; then
            echo "Sufixo não pode ser vazio."
            exit 1
        fi
        for arquivo in "$diretorio"/*; do
            novo_nome="$arquivo$sufixo"
            if [ -e "$novo_nome" ]; then
                echo "Erro: O arquivo $novo_nome já existe."
                exit 1
            fi
            mv "$arquivo" "$novo_nome"
            echo "Renomeado $arquivo para $novo_nome"
        done
        ;;
    *)
        echo "Erro. Tem de escolher apenas entre prefixo e sufixo."
        exit 1
        ;;
esac

Bons estudos!