Primeiro de tudo, para descobrir o que as opções de um comando fazem, você pode usar man command
. Então, se você executar man ln
, verá:
-f, --force
remove existing destination files
-s, --symbolic
make symbolic links instead of hard links
Agora, o -s
, como você disse, é tornar o link simbólico em oposição ao hard. O -f
, no entanto, não é remover o link. É sobrescrever o arquivo de destino, se houver um. Para ilustrar:
$ ls -l
total 0
-rw-r--r-- 1 terdon terdon 0 Mar 26 13:18 bar
-rw-r--r-- 1 terdon terdon 0 Mar 26 13:18 foo
$ ln -s foo bar ## fails because the target exists
ln: failed to create symbolic link ‘bar’: File exists
$ ln -sf foo bar ## Works because bar is removed and replaced with the link
$ ls -l
total 0
lrwxrwxrwx 1 terdon terdon 3 Mar 26 13:19 bar -> foo
-rw-r--r-- 1 terdon terdon 0 Mar 26 13:18 foo