Quando você não tem certeza do que algo faz, e a documentação não diz, você chegou às fontes, ou seja, line 1588 :
if (matches(*argv, "change") == 0 ||
strcmp(*argv, "chg") == 0)
return ipaddr_modify(RTM_NEWADDR, NLM_F_REPLACE, argc-1, argv+1);
Então, o que isso faz? Retorna o resultado da execução da função ipaddr_modify() definido na linha 1379 com os argumentos RTM_NEWADDR e NLM_F_REPLACE .
From what I could determine playing around, I guess one can always use
ip addr changeinstead ofip addr add, because if an address does not exist,ipwill add one, just ifip addr addwas used.Is that correct, i.e., can anybody explain what precisely
ip addr changedoes and how it differs fromip addr add?
Não, add criará ou executará os argumentos fornecidos (se houver algum dado), enquanto change procurará o argumento e o substituirá.
BTW, replace parece ser um compromisso entre add e change , pois usa uma mescla de argumentos.