ln -s ../src include/bb
cria um link chamado include/bb
referente a ../src
(relativo a sua localização) ou cria um arquivo include/bb/src
referente a ../src
(relativo a sua localização). O último é o caso se include/bb
existir e for um diretório (na verdade ou como um link para um diretório).
Assim, quando você tiver feito o comando uma vez, agora há um link include/bb
que aponta o diretório src
, irmão para include
. Ou seja, include/bb
agora é um diretório. Portanto, quando você faz o comando na hora subseqüente, um novo link chamado src
é adicionado a esse diretório.
Não tem nada a ver com ;
.
Você pode ter pretendido usar
ln -sTf ../src include/bb
em vez disso, para (por -T
) informar ln
para tratar qualquer include/bb
existente como um arquivo simples (mesmo que seja um link que faça referência a um diretório) e (por -f
) forçar esse arquivo a ser substituído.