Estou tentando emular o processo de resolução do caminho (consulte a página de manual path_resolution) em sistemas como o Unix.
Meu sistema operacional é Linux com GNU coreutils 8.7.
Para esclarecer o significado de '/' à direita na resolução, fiz as seguintes coisas em um shell:
mkdir this_is_dir
ln -s this_is_dir this_is_link
rm this_is_link
Tudo estava bem, porque this_is_link é um link simbólico e eu apenas o removi. Mas enquanto tenta:
mkdir this_is_dir
ln -s this_is_dir this_is_link
rm this_is_link/
Ecoou rm: cannot remove 'this_is_link/': Is a directory
Bem, o '/' à direita causou o seguinte link simbólico, pensei. Então, eu tentei outro comando:rmdir this_is_link/
E um resultado engraçado saiu: rmdir: failed to remove 'this_is_link/': Not a directory
Não o que eu esperava. Então, pedi ao meu amigo para confirmar se o mesmo resultado poderia ser obtido em seu sistema. Ele tinha uma versão inferior do coreutils do que eu. E o resultado foi incrível, não importa rm
ou rmdir 'this_is_link/'
, Not a directory
ocorre o mesmo erro .
E outro amigo acabou de experimentar no Mac OS, o resultado é: rm
=> 'É um diretório', rmdir
=> o diretório foi excluído com sucesso, o link permaneceu .
Há alguma especificação sobre o comportamento exato da resolução do caminho?