A opção -f
permite sobrescrever o arquivo de destino , ou seja, o arquivo com o nome com o qual você está criando o link, com um novo link. Não verifica outros links no mesmo diretório.
Exemplo:
$ touch file1
$ touch file2
$ ln -s file1 link1
$ ls -l
total 8
-rw-r--r-- 1 jenny staff 0 Mar 16 21:13 file1
-rw-r--r-- 1 jenny staff 0 Mar 16 21:13 file2
lrwxr-xr-x 1 jenny staff 5 Mar 16 21:13 link1 -> file1
$ ln -s file2 link1
ln: link1: File exists
$ ln -s -f file2 link1
$ ls -l
total 8
-rw-r--r-- 1 jenny staff 0 Mar 16 21:13 file1
-rw-r--r-- 1 jenny staff 0 Mar 16 21:13 file2
lrwxr-xr-x 1 jenny staff 5 Mar 16 21:14 link1 -> file2
Se você quiser apenas mover o nome do link, para que, em vez de ser chamado de link1
, ele seja chamado de newlink
, mova-o:
$ mv link1 newlink
$ ls -l
total 8
-rw-r--r-- 1 jenny staff 0 Mar 16 21:13 file1
-rw-r--r-- 1 jenny staff 0 Mar 16 21:13 file2
lrwxr-xr-x 1 jenny staff 5 Mar 16 21:14 newlink -> file2
Se você estiver trabalhando com diretórios em vez de arquivos, será necessário adicionar a opção -n
e -f
:
$ ls -l
total 16
drwxrwxr-x 2 jenny jenny 4096 Mar 18 10:37 dir1
drwxrwxr-x 2 jenny jenny 4096 Mar 18 10:37 dir2
$ ln -s dir1 link1
$ ls -l
total 20
drwxrwxr-x 2 jenny jenny 4096 Mar 18 10:37 dir1
drwxrwxr-x 2 jenny jenny 4096 Mar 18 10:37 dir2
lrwxrwxrwx 1 jenny jenny 4 Mar 18 10:37 link1 -> dir1
$ ln -s -n -f dir2 link1
$ ls -l
total 20
drwxrwxr-x 2 jenny jenny 4096 Mar 18 10:37 dir1
drwxrwxr-x 2 jenny jenny 4096 Mar 18 10:37 dir2
lrwxrwxrwx 1 jenny jenny 4 Mar 18 10:38 link1 -> dir2