Como verificar se um arquivo não existe no Bash

Como verificar se um arquivo não existe no Bash

Bash, ou The Bourne Again Shell, é um shell UNIX popular usado para scripts e automatizando tarefas no Linux, MacOS e outros sistemas do tipo Unix. Uma tarefa comum no script de bash é verificar se um arquivo não existe. Isso pode ser útil para tarefas como criar novos arquivos apenas se eles ainda não existirem, pulando os arquivos existentes durante uma transferência de arquivos ou desencadeando ações específicas com base na presença do arquivo. Neste artigo, exploraremos maneiras diferentes de verificar se um arquivo não existe no Bash.

Método 1: Usando o 'testeComando

O 'teste' O comando em bash é um utilitário simples e interno que avalia expressões condicionais. Pode ser usado para verificar várias condições, incluindo a existência de um arquivo. Para verificar se um arquivo não existe, use a seguinte sintaxe:

Copie o código se teste ! -e file_path, então # execute ações se o arquivo não existir FI
12345Copie o teste CodeIF ! -e file_paththen # execute ações se o arquivo não existirfi

Neste exemplo, o '-e' bandeira verifica a existência do arquivo, enquanto o '!' nega o resultado. Se o arquivo não existir, os comandos dentro do 'se' O bloco será executado.

Método 2: Usando suportes quadrados

O 'teste' O comando também pode ser representado usando suportes quadrados ('[' e ']' '), que é mais comum em scripts de bash. Para verificar se um arquivo não existe usando colchetes quadrados, use a seguinte sintaxe:

se [ ! -e file_path] então # execute ações se o arquivo não existir FI
1234se [ ! -e file_path] então # execute ações se o arquivo não existirfi

Isso é funcionalmente equivalente ao 'teste' Exemplo de comando acima.

Método 3: Usando suportes quadrados duplos

Bash também suporta suportes quadrados duplos ('[[' e ']]' ') para expressões condicionais. Esta é uma sintaxe mais moderna e preferida para muitos usuários, pois fornece recursos adicionais e é mais perdoador com espaçamento. Para verificar se um arquivo não existe usando colchetes duplos, use a seguinte sintaxe:

se [[ ! -e file_path]] então # execute ações se o arquivo não existir FI
1234se [[ ! -e file_path]] então # execute ações se o arquivo não existirfi

Isso é funcionalmente equivalente aos exemplos anteriores, mas utiliza a sintaxe de suporte quadrado duplo mais moderno.

Método 4: Usando o 'se'Comando com o'-f' bandeira

Em alguns casos, convém verificar especificamente a inexistência de um arquivo regular (em oposição a um diretório ou outros tipos de arquivo). Para fazer isso, use o '-f' bandeira em vez do '-e' bandeira. Isso só retornará a verdade se o arquivo não existir ou não for um arquivo regular:

se [ ! -f file_path] então # execute ações se o arquivo não existir ou não for um arquivo regular FI
1234se [ ! -f file_path] então # execute ações se o arquivo não existir ou não for um filefi regular

Conclusão

Neste artigo, discutimos quatro métodos diferentes para verificar se um arquivo não existir no Bash. Esses métodos podem ser usados ​​para várias tarefas, como criar novos arquivos apenas se ainda não existirem ou desencadear ações específicas com base na presença do arquivo. Dependendo da sua preferência e requisitos, você pode escolher qualquer um dos métodos descritos acima para verificar a inexistência de um arquivo em seus scripts bash.