O que você está descrevendo deve funcionar bem - contanto que você esteja usando caminhos absolutos, e -f
("Arquivo existe e é um arquivo normal") é realmente o teste que você deseja realizar.
Eu vejo um /
no que você postou na sua pergunta - Você está testando um diretório? Isso deve ser -d
, ou simplesmente -e
("Algo existe com esse nome - independentemente do tipo")
Observe também que, a menos que algo ao longo do caminho não seja legível, test
( [
) deve saber se um arquivo de propriedade de root existe ou não (por exemplo, [ -f /root/.ssh/known_hosts ]
provavelmente falhará, porque o / root O diretório /.ssh não é (ou pelo menos não deveria ser ) legível por um usuário normal. [ -f /etc/crontab ]
deve ser bem-sucedido).