Como verificar se existe um arquivo em bash

Como verificar se existe um arquivo em bash

Existem várias maneiras de verificar a disponibilidade de um arquivo no Linux. O comando "teste" no script de 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 scripts bash:

Como verificar a existência do arquivo usando scripts de bash:

1) Inserindo o nome do arquivo no terminal:

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

$ touch testfile.sh

O nome do arquivo que eu criei é “TestFile.sh ", o".Extensão SH ”indica o arquivo de script do 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 do usuário no terminal.

Usar "-f”Para verificar a existência do arquivo.

Escreva o script abaixo:

#!/BIN/BASH
eco "Digite seu nome de arquivo"
Leia NewFile1
Se [-f "$ newfile1"]
então
eco "o arquivo é encontrado"
outro
eco "o arquivo não é encontrado"
fi

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

./nome do arquivo.sh

A permissão negado a mensagem seria exibida no terminal.

Torne-o executando executando o comando abaixo mencionado:

$ chmod +x testfile.sh

Digite o nome do arquivo e ele imprimirá a saída:

2) Ao inserir o nome do arquivo ao escrever o script:
Outra maneira de encontrar um arquivo dando o nome do arquivo enquanto escrevia o script. Temos três maneiras de verificar a disponibilidade do arquivo. O primeiro é usar o comando "teste", o segundo está usando "se" com uma expressão entre colchetes, e o terceiro também está com "se", mas suportes quadrados duplos, conforme indicado abaixo:

  1. “Expressão de teste.”
  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 = file1
se test -f "$ filename";
então
eco "$ arquivo encontrou."
outro
eco "o arquivo $ não foi encontrado"
fi

Saída:

Como não existe esse arquivo no meu diretório, o código exibe a mensagem "O arquivo não é encontrado".

2) Se [expressão]

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

#!/BIN/BASH
nome do arquivo = myFile.TXT
se [-f "$ filename"];
então
Echo "$ FILENAME ENCONTRADO."
outro
eco "o nome do arquivo não foi encontrado"
fi

Saída:

3) Se [[expressão]]

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

#!/BIN/BASH
FILENAME = TESTFILE
if [[-f "$ filename"]];
então
Echo "$ FILENAME ENCONTRADO."
outro
eco "$ filename não foi encontrado"
fi

Saída:

Para verificar o diretório:

3) Ao inserir o nome do diretório enquanto escrevia um script

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

No script abaixo mencionado, "Dir11" é a variável na qual você armazena o arquivo que está encontrando; Neste exemplo, quero verificar o nome do diretório "testdir".

#!/BIN/BASH
dir11 = testdir
Se [-d "$ dir11"]
então
eco "o diretório encontrou"
outro
eco "o diretório não foi encontrado"
fi

Saída:

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

#!/BIN/BASH
eco "digite seu nome de diretório."
Leia Dir1
Se [-d "dir1"]
então
eco "diretório foi encontrado"
outro
eco "o diretório não encontrou"
fi

Saída:

Verificando o arquivo sem usar a instrução "se":

O comando "teste" pode ser executado sem a declaração "se". Ele exibirá apenas a saída se o arquivo existir; caso contrário, não haveria saída:

Escreva o script:

  1. teste -f myfile.txt && eco "o arquivo foi encontrado"
  2. [-f MyFile.txt] && eco "$ arquivo foi encontrado."
  3. [-f myfile.txt]] && echo "$ arquivo foi encontrado."

Saída:

Verificando o diretório sem usar a instrução "se":

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

  1. [[-d testdir]] && eco "O diretório existe"
  2. 2) [-d testdir] && eco "O diretório existe"

Saída:

Verificando vários arquivos/diretórios:

1) Verificando vários arquivos com as instruções "se":
Use o sinalizador "-a" para verificar a existência de vários arquivos em vez de usar as instruções "if/else" aninhadas:

#!/BIN/BASH
Se [-f new_file.txt -a -f newfile.TXT ]; então
eco "Ambos os arquivos existem."
fi

Outra maneira é:

#!/BIN/BASH
Se [[-f new_file.txt && -f newfile.TXT ]]; então
eco "Ambos os arquivos existem."
fi

Saída:

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

  1. [-f new_file.txt && -f newfile.txt]] && echo “Ambos os arquivos saem.”
  2. [-f new_file.txt && -f newfile.txt]] && echo “Ambos os arquivos saem.”

Saída:

Conclusão:

Este artigo mostrou como usar scripts bash para verificar um arquivo ou um diretório. Usamos opções diferentes para verificar a disponibilidade de um arquivo. Em primeiro lugar, usamos o comando "teste" com diferentes bandeiras. Então aprendemos o uso de "se", aninhado "if-else" e sem as instruções "se" para verificar o arquivo ou diretório. Também analisamos como verificar vários arquivos ou diretórios.