I'm trying to emulate the process of path resolution (see man page path_resolution) in unix-like systems.
My OS is Linux with GNU coreutils 8.7.
In order to clarify the meaning of extra trailing '/' in resolution, I did following things in a shell:
mkdir this_is_dir ln -s this_is_dir this_is_link rm this_is_link
Everything was fine, because this_is_link is a symlink, and I just removed it away. But while trying:
mkdir this_is_dir ln -s this_is_dir this_is_link rm this_is_link/
rm: cannot remove 'this_is_link/': Is a directory
Well, the trailing '/' caused following of symlink, I thought.
So, I tried another command:
And a funny result came out:
rmdir: failed to remove 'this_is_link/': Not a directory
Not what I expected. So I asked my friend to confirm if the same result could be obtained on his system. He had a lower version of coreutils than I had. And the result was amazing, no matter
rmdir 'this_is_link/', the same error
Not a directory occurs.
And another friend just tried it out on his Mac OS, the result is:
rm => 'Is a directory',
rmdir => the directory is successfully deleted, the link remained.
Are there any spec about the exact behavior of path resolution?