Como verificar se existe um arquivo no bash

How Check If File Exists Bash



Existem várias maneiras de verificar a disponibilidade de um arquivo no Linux. O comando de teste no script bash é uma das principais abordagens para verificar a existência de um arquivo.
O foco deste guia é discutir a existência de um arquivo em seu sistema por meio de script bash:

Como verificar a existência do arquivo usando o script bash:

1) Ao inserir o nome do arquivo no terminal:







Em primeiro lugar, precisamos criar um arquivo de script bash, use o comando mencionado abaixo:



$tocartestfile.sh

O nome do arquivo que criei é testfile.sh, a extensão .sh indica o arquivo de script de shell:







Abra o testfile.sh em qualquer editor de texto. Em seguida, escreva o script, salve-o pressionando salvar.

Uma maneira é encontrar um arquivo solicitando um nome de arquivo ao usuário no terminal.



Usar -f para verificar a existência do arquivo.

Escreva o script abaixo:

#! / bin / bash
jogou fora 'Digite seu nome de arquivo'
leituranewfile1
E se [ -f '$ newfile1' ]
então
jogou fora 'Arquivo encontrado'
outro
jogou fora 'Arquivo não encontrado'
ser

Volte para o terminal e execute o arquivo para imprimir a saída:

./filename.sh

A mensagem de permissão negada seria exibida no terminal.

Torne-o executável executando o comando mencionado abaixo:

$chmod+ x testfile.sh

Digite o nome do arquivo e ele imprimirá o resultado:

2) Ao inserir o nome do arquivo ao escrever o script:
Outra forma de localizar um arquivo é fornecer o nome do arquivo ao escrever o script. Temos três maneiras de verificar a disponibilidade do arquivo. O primeiro está usando o comando test, o segundo está usando if com uma expressão entre colchetes e o terceiro também está com if, mas com colchetes duplos, conforme indicado abaixo:

  1. teste EXPRESSION.
  2. se [EXPRESSÃO]
  3. se [[EXPRESSÃO]]

Vamos entender com exemplos:

1) teste [Expressão]
Copie o script fornecido e cole-o no editor, salve-o:

#! / bin / bash
nome do arquivo= arquivo1
E se teste -f '$ filename';
então
jogou fora '$ fileencontrou.'
outro
jogou fora '$ filenão foi encontrado '
ser

Saída:

Como esse arquivo não existe em meu diretório, o código exibe a mensagem Arquivo não encontrado.

2) se [Expressão]

Copie o seguinte script para verificar se o arquivo existe ou não:

#! / bin / bash
nome do arquivo= meuarquivo.txt
E se [ -f '$ filename' ];
então
jogou fora '$ filenameencontrou.'
outro
jogou fora 'nome do arquivo não foi encontrado'
ser

Saída:

3) se [[Expressão]]

Copie o script escrito abaixo e cole-o no terminal:

#! / bin / bash
nome do arquivo= testfile
E se [[ -f '$ filename' ]];
então
jogou fora '$ filenameencontrou.'
outro
jogou fora '$ filenamenão foi encontrado '
ser

Saída:

Para verificar o diretório:

3) Ao inserir o nome do diretório ao escrever um script

Use o -d sinalizador para verificar a existência de um diretório.

No script mencionado a seguir, dir11 é a variável na qual você armazena o arquivo que está encontrando; neste exemplo, quero verificar se o nome do diretório testDir existe ou não.

#! / bin / bash
dir11= testDir
E se [ -d '$ dir11' ]
então
jogou fora 'Diretório encontrado'
outro
jogou fora 'Diretório não foi encontrado'
ser

Saída:

2) Ao inserir o nome do arquivo no terminal:
Quando você executa o comando no terminal para verificar se o diretório existe ou não, é necessário inserir o nome do diretório que está procurando:

#! / bin / bash
jogou fora 'digite o nome do seu diretório.'
leituraDir1
E se [ -d 'Dir1' ]
então
jogou fora 'diretório foi encontrado'
outro
jogou fora 'diretório não encontrado'
ser

Saída:

Verificar o arquivo sem usar a instrução if:

O comando de teste pode ser executado sem a instrução if. Ele só exibirá a saída se o arquivo existir; caso contrário, não haveria saída:

Escreva o script:

  1. teste -fmeuarquivo.txt&& jogou fora 'arquivo foi encontrado'

  2. [ -fmeuarquivo.txt] && jogou fora '$ filefoi encontrado.'

  3. [[ -fmeuarquivo.txt]] && jogou fora '$ filefoi encontrado.'

Saída:

Verificar o diretório sem usar a instrução if:

Use as instruções mencionadas abaixo para verificar se um diretório existe ou não:

  1. [[ -dtestDir]] && jogou fora 'diretório existe'

  2. 2) [ -dtestDir] && jogou fora 'diretório existe'

Saída:

Verificando vários arquivos / diretórios:

1) Verificar vários arquivos com declarações if:
Use a sinalização -a para verificar a existência de vários arquivos em vez de usar instruções if / else aninhadas:

#! / bin / bash
E se [ -fnew_file.txt-para -fnewfile.txt];então
jogou fora 'Ambos os arquivos existem.'
ser

Outra maneira é:

#! / bin / bash
E se [[ -fnew_file.txt&& -fnewfile.txt]];então
jogou fora 'Ambos os arquivos existem.'
ser

Saída:

2) Verificar vários arquivos sem usar a instrução if:
Use a seguinte instrução para verificar vários arquivos simultaneamente 1sem usar se:

  1. [[ -fnew_file.txt&& -fnewfile.txt]] && jogou foraAmbos os arquivos são encerrados.

  2. [[ -fnew_file.txt&& -fnewfile.txt]] && jogou foraAmbos os arquivos são encerrados.

Saída:

Conclusão:

Este artigo mostrou como usar o script bash para verificar um arquivo ou diretório. Usamos diferentes opções para verificar a disponibilidade de um arquivo. Em primeiro lugar, usamos o comando test com diferentes sinalizadores. Em seguida, aprendemos o uso de if, if-else aninhado e sem as instruções if para verificar o arquivo ou diretório. Também examinamos como verificar vários arquivos ou diretórios.