unlink(1) é uma variante intencionalmente simplificada de rm(1) .
Não sei porque foi criado, mas provavelmente é devido ao fato de que rm(1) é implementado em termos da chamada do sistema unlink(2) . Portanto, assumo que o motivo para unlink(1) é fornecer um caminho mais direto para a chamada do sistema. Alguém sem dúvida surgiu com um caso de uso em que rm(1) fez a coisa errada e decidiu que a melhor maneira de corrigi-lo era fornecer esse caminho direto.