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 / bashjogou 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.shA 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:
- teste EXPRESSION.
- se [EXPRESSÃO]
- se [[EXPRESSÃO]]
Vamos entender com exemplos:
1) teste [Expressão]
Copie o script fornecido e cole-o no editor, salve-o:
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 / bashnome 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 / bashnome 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 / bashdir11= 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:
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:
- teste -fmeuarquivo.txt&& jogou fora 'arquivo foi encontrado'
- [ -fmeuarquivo.txt] && jogou fora '$ filefoi encontrado.'
- [[ -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:
- [[ -dtestDir]] && jogou fora 'diretório existe'
- 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:
E se [ -fnew_file.txt-para -fnewfile.txt];então
jogou fora 'Ambos os arquivos existem.'
ser
Outra maneira é:
#! / bin / bashE 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:
- [[ -fnew_file.txt&& -fnewfile.txt]] && jogou foraAmbos os arquivos são encerrados.
- [[ -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.