O link simbólico não sobrescreve (-f) se houver no destino uma pasta?
ln
não é capaz de diferenciar dir
de dir/
como alguns outros comandos (rsync
, etc), por esse motivo acredito que originalmente, para evitar comportamentos destrutivos silenciosos, até mesmo -f
não toma a atitude de sobrescrever diretórios, criando o link dentro. O manual não explicita esse comportamento, mas:
Given one or two arguments, ln creates a link to an existing file source_file. If target_file is given, the link has that name; target_file may also be a directory in which to place the link; otherwise it is placed in the current directory. If only the directory is specified, the link will be made to the last component of source_file.
O mesmo vale para links já existentes, o comando de-referencia o link, é preciso usar o argumento -n|--no-dereference
junto.
Algumas versões suportam -F
, mas segundo o manual:
The -F option is a FreeBSD extension and should not be used in portable scripts.