Como verificar se existe um arquivo

3

Como eu determino que um arquivo existe usando um script de shell?

Ou seja:

#!/bin/sh

if [ Does File Exist? ]
then
    do this thing
fi
    
por Simon Hodgson 05.08.2009 / 15:50

6 respostas

8

Você provavelmente vai querer / bin / bash a menos que você precise usar / bin / sh, / bin / sh é mais restrito. Então, se você estiver usando o bash:

Assim:

 if [[ -e filename ]]; then
    echo 'exists'
 fi

Se o seu nome de arquivo estiver em uma variável, use o seguinte, as aspas duplas são importantes se o arquivo tiver um espaço:

if [[ -e "$myFile" ]]; then
   echo 'exists'
fi

Se você estiver usando sh e quiser ser compatível com o IEEE Std 1003.1,2004 Edition, use colchetes individuais. A opção -e ainda é suportada.

    
por 05.08.2009 / 15:55
7

link

    
por 05.08.2009 / 15:52
3

if [ -f filename ]

testará a existência de um arquivo regular. Existem outras opções que você pode passar para verificar se há um executável ou outros atributos de um arquivo.

    
por 05.08.2009 / 15:55
1

Página de referência para o teste de arquivos

Depois de percorrer todas as páginas,
Mantenha esta Folha de referência à mão.

    
por 05.08.2009 / 15:54
0

Há sempre as páginas man:

man test

    
por 05.08.2009 / 16:11
0

Apenas para observar que, se você quiser algo que funcione em todas as sh shells (não apenas bash) e entre plataformas, a única maneira é:

ls filename >/dev/null 2>&1
if [ $? = 0 ]; then
   echo "File exists"
fi
    
por 05.08.2009 / 16:20