Se você precisa de um script de shell, você pode usar isto:
#!/bin/bash
file="$1"
if [ -f "$file" ]; then
echo "File $file exists."
else
echo "File $file does not exist."
fi
Você pode executá-lo assim:
bash test.sh /tmp/bobv2.txt
Portanto, tenho um nome de arquivo bobv1.txt e não quero verificar manualmente se o bobv2.txt está no site. No site bobv1.txt será substituído por bobv2.txt. Eu fiz o download da página html e determinei o caminho completo do download do bobvX.txt e sei que o arquivo está no meu sistema de arquivos. Como posso saber se o arquivo já está no meu sistema de arquivos? Preciso que isso funcione para todas as versões subseqüentes.
Se você precisa de um script de shell, você pode usar isto:
#!/bin/bash
file="$1"
if [ -f "$file" ]; then
echo "File $file exists."
else
echo "File $file does not exist."
fi
Você pode executá-lo assim:
bash test.sh /tmp/bobv2.txt
Existem várias maneiras de verificar se existe ou não um arquivo.
test
(também conhecido como [
) para fazer [ -f /path/to/file.txt ]
use o redirecionamento para tentar abrir o arquivo (note que isso não é efetivo se você não tiver permissões para ler o arquivo)
$ bash -c 'if < /bin/echo ;then echo "exists" ; else echo "does not exist" ; fi'
exists
$ bash -c 'if < /bin/noexist ;then echo "exists" ; else echo "does not exist" ; fi'
$ bash: /bin/noexist: No such file or directory
does not exist
ou com o silenciamento da mensagem de erro:
$ 2>/dev/null < /etc/noexist || echo "nope"
nope
use um programa externo, como stat
$ if ! stat /etc/noexist 2> /dev/null; then echo "doesn't exist"; fi
doesn't exist
Comando ou find
:
$ find /etc/passwd
/etc/passwd
$ find /etc/noexist
find: ‘/etc/noexist’: No such file or directory