É, como você disse, uma bifurcação. O que ele faz é definir uma função e chamá-la. A função é chamada :
.
Vamos citar forkbomb
para podermos ver melhor o que está acontecendo:
forkbomb(){ forkbomb|forkbomb& };forkbomb
Como você pode ver e provavelmente adivinhar a partir de sua experiência de programação, a primeira parte é a definição da função ( forkbomb(){ ... }
), e o último :
é onde a função é chamada (o ;
apenas separa instruções em Bash).
Agora, o que essa função faz? Se você estiver familiarizado com o Bash, saberá que o caractere |
canaliza a saída padrão de um comando / programa para a entrada padrão de outro. Então, basicamente, :|:
inicia duas instâncias da função (isso é onde "forks").
E então a mágica: o &
coloca esses comandos em segundo plano, permitindo que a função original retorne, enquanto cada instância se bifurca até que as vacas voltem para casa em segundo plano, usando assim todos os seus recursos e derrubando as sistema (a menos que tenha limites impostos).