O fragmento cmdA || cmdB
significa "Executar cmdA
e, se falhar (sai com um código de saída diferente de 0), execute cmdB
".
De link : o cólon :
no bash é um comando que não faz nada.
Assim, o fragmento rm -r node_modules || :; ...
pode ser interpretado como:
- Executar
rm -r node_modules
. - Se falhar (porque o diretório
node_modules
file não existe ou não temos permissões), não faça nada (ignore o erro) - Execute o restante da linha.
Esta é uma forma de ignorar erros, porque neste caso são esperados erros. Especificamente para rm
, dessa forma é mais seguro que o -f
sinalizador porque não força a remoção de arquivos rm
normalmente se recusaria a excluir.