É diferente com e sem -s .
com -s em:
ln -s path/to/file some/dir/link
path/to/file está definido como o destino do link simbólico de some/dir/link (ou some/dir/link/file if link era um diretório).
Um link simbólico é um tipo especial de arquivo que / contém / um caminho (pode ser qualquer array de bytes não-0, alguns sistemas até permitem uma string vazia) que é o alvo do symlink. ln define o primeiro argumento.
Ao resolver o link (quando o link for usado mais tarde), o caminho path/to/file será relativo ao diretório em que o link está (hard-) vinculado ( some/dir quando some/dir/link é acessado através do seu caminho some/dir/link ).
Observe que o path/to/file não precisa existir no momento em que o comando ln é executado (ou nunca).
Em:
ln path/to/file some/dir/link
É semelhante a:
cp path/to/file some/dir/link
O path/to/file é relativo ao diretório de trabalho atual do processo que está executando ln .
Nada impede que você crie vários links (hard-) para um symlink. Por exemplo:
$ mkdir -p a b/c b/a
$ ln -s ../a b/L # b/L a symlink to "a"
$ ln b/L b/c/L
b/L e b/c/L são o mesmo arquivo: mesmo inode mas vinculado a dois diretórios diferentes. Ambos são links simbólicos com o destino ../a . Mas quando b/L é resolvido, isso aponta para ./a enquanto quando b/c/L , que aponta para ./b/a .