A especificação POSIX / Single Unix especifica que um nome de caminho com uma barra final deve se referir a um diretório (ver < href="http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11"> definições básicas §4.11 resolução do nome do caminho . foo/
é de fato definido como equivalente a foo/.
(para propósitos de resolução de caminho, não ao manipular nomes de arquivos; basename
e dirname
ignoram barras finais). A maioria das implementações respeita isso, mas existem algumas exceções.
Isso explica o comportamento de rm this_is_link/
: é equivalente a rm this_is_link/.
, em que o argumento é claramente um diretório.
rmdir this_is_link/
deve se referir ao diretório. Isso não acontece na sua máquina é um bug no GNU coreutils. O OSX está se comportando corretamente aqui.