Como o compartilhamento de arquivos do Windows e, portanto, o samba original não tinha nenhum conceito de links simbólicos, ele normalmente excluiria toda a árvore de pastas por meio de um link simbólico. No entanto, você pode tentar mudar para unix extensions = yes
, pois o seu OSX também pode entender isso.
Na página link
unix extensions (G)
This boolean parameter controls whether Samba implements the CIFS UNIX extensions, as defined by HP. These extensions enable Samba to better serve UNIX CIFS clients by supporting features such as symbolic links, hard links, etc... These extensions require a similarly enabled client, and are of no current use to Windows clients.
Note if this parameter is turned on, the wide links parameter will automatically be disabled.
See the parameter allow insecure wide links if you wish to change this coupling between the two parameters.
Default: unix extensions = yes
Você pode querer investigar mais a opção inseguros de links largos, já que talvez queira desativá-la para alcançar os resultados desejados.
O acima pode ainda não funcionar como você deseja devido à forma como muitos sistemas implementam a exclusão de uma estrutura de pastas. Normalmente a sequência continua como
- o cliente detecta incorretamente o objeto a ser excluído é uma estrutura de pastas em vez de um link simbólico. O
- cliente recursivamente prossegue para os níveis mais profundos da árvore e exclui todo o conteúdo dessas pastas.
- o cliente volta dos níveis mais profundos de volta para a pasta que você pediu para excluir, excluindo-os da seguinte forma
- finalmente, quando a pasta estiver vazia, o cliente enviará o comando para excluir a pasta
- no entanto, como a pasta é, na verdade, um link simbólico, o host só exclui o link simbólico.
É assim que o conteúdo do alvo é deletado junto com o link simbólico, mas não a pasta atual.
Da mesma forma, quando for instruído a excluir um arquivo com link simbólico, apenas o link simbólico será excluído. O problema com a estrutura de pastas ligadas a links simbólicos é que o cliente samba envia o comando delete para todo o conteúdo antes de instruir o servidor a excluir o link simbólico para a pasta.