À partir de la page de manuel BSD :
-f If the target file already exists, then unlink it so that the link
may occur. (The -f option overrides any previous -i options.)
-n If the target_file or target_dir is a symbolic link, do not follow
it. This is most useful with the -f option, to replace a symlink
which may point to a directory.
le -n
option (avec -f
) force ln
pour mettre à jour un lien symbolique vers un répertoire. qu'est-ce que cela signifie ?
supposons que vous ayez 2 répertoires
- foo
- barre
et un lien symbolique existant
- baz -> bar
maintenant vous voulez mettre à jour baz pointer vers foo Au lieu. si vous le faites simplement
ln -sf foo baz
vous obtiendriez
- baz/foo -> foo
- baz -> bar (inchangé), et donc
- bar/foo -> foo
si vous ajoutez -n
ln -sfn foo baz
vous obtenez ce que vous voulez.
- baz -> foo
c'est ce que signifie "sans déréférencement" :ne résolvez pas un lien existant et placez le nouveau lien dans ce répertoire, mais mettez-le simplement à jour.
Voici toutes les options à ln. Vous trouverez -n et -f ici.
-F If the target file already exists and is a directory, then remove it so that the link may occur. The -F option should be used with either -f or -i options. If none is specified, -f is implied. The -F option is a no-op unless -s option is specified. -h If the target_file or target_dir is a symbolic link, do not follow it. This is most useful with the -f option, to replace a symlink which may point to a directory. -f If the target file already exists, then unlink it so that the link may occur. (The -f option overrides any previous -i options.) -i Cause ln to write a prompt to standard error if the target file exists. If the response from the standard input begins with the character `y' or `Y', then unlink the target file so that the link may occur. Otherwise, do not attempt the link. (The -i option overrides any previous -f options.) -n Same as -h, for compatibility with other ln implementations. -s Create a symbolic link. -v Cause ln to be verbose, showing files as they are processed.