Automação no Shell: Como Verificar se Arquivos e Diretórios Existem Usando if no Bash

Automação no Shell: Como Verificar se Arquivos e Diretórios Existem Usando if no Bash

A validação da existência de arquivos e diretórios é uma etapa fundamental antes de ler, gravar ou executar tarefas de automação em scripts Shell. Utilizar o comando if junto com os operadores de teste nativos do Bash evita erros em tempo de execução e impede que comandos sejam aplicados em caminhos inexistentes ou inválidos.

Bash

#!/bin/bash
# Script para verificação de existência e tipo de caminhos no sistema

CAMINHO_ARQUIVO="/etc/hosts"
CAMINHO_DIR="/var/log"

# 1. Checa se o arquivo existe e é um arquivo comum (-f)
if [ -f "$CAMINHO_ARQUIVO" ]; then
    echo "[OK] O arquivo $CAMINHO_ARQUIVO foi encontrado."
else
    echo "[ERRO] O arquivo $CAMINHO_ARQUIVO nao existe."
fi

# 2. Checa se o diretório existe (-d)
if [ -d "$CAMINHO_DIR" ]; then
    echo "[OK] O diretorio $CAMINHO_DIR esta acessivel."
fi

# 3. Exemplo prático: validação antes de criar uma pasta
NOVO_DIR="./dados_app"
if [ ! -d "$NOVO_DIR" ]; then
    mkdir -p "$NOVO_DIR"
    echo "Diretorio $NOVO_DIR criado com sucesso!"
fi

Exemplo de uso e execução no terminal:

Bash

# Conceda permissão e execute o script
chmod +x verifica_caminho.sh
./verifica_caminho.sh

Pontos-chave

  • Operador -f vs -e: O operador -f retorna verdadeiro apenas se o caminho for um arquivo comum; para testar a existência genérica de qualquer item (incluindo links, diretórios e sockets), utilize -e.
  • Verificação de Diretórios (-d): Garante que o alvo é uma pasta antes de tentar operações como navegação (cd) ou listagem (ls).
  • Operador de Negação (!): Inverte a lógica da condição (ex: if [ ! -d "pasta" ]), permitindo executar comandos quando um elemento não for encontrado.
  • Aspas Duplas Obrigatórias: Sempre envolva as variáveis em aspas dentro do teste (ex: "$CAMINHO"), prevenindo erros de sintaxe caso a string contenha espaços em branco.
  • Checagem de Permissões Adicionais: É possível combinar verificações com outros flags úteis, como -r (permissão de leitura), -w (permissão de escrita) e -x (permissão de execução).

Thales de Oliveira Gomes

Thales de Oliveira Gomes é gestor de Tecnologia da Informação, especialista em infraestrutura de redes, computação em nuvem e operações de TI hospitalar, com mais de 18 anos de experiência na área. Graduado em Gestão de TI e pós-graduado em Engenharia de Redes e Telecomunicações, Cloud Computing, Redes de Computadores e Gestão Hospitalar, construiu uma trajetória sólida liderando projetos de alta complexidade, como a implementação e migração para nuvem de sistemas ERP de grande porte. Sua atuação no setor o levou a ser indicado ao prêmio IT Leaders Brasil na categoria Rising Leaders. Além da carreira corporativa e da paixão por tecnologia, Thales é autor independente com mais de 70 obras publicadas sobre redes, segurança da informação, Linux e física, além de criador de conteúdo no blog Vetor Tech e na plataforma CiberDicas. No universo das artes e do entretenimento, atua como produtor de música eletrônica sob o projeto Yknex, cria ilustrações digitais e compartilha walkthroughs de games no YouTube.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *