[CentOS] Very weird problem with handling symbolic links

Pete Biggs pete at biggs.org.uk
Mon Sep 17 09:17:51 UTC 2018


> 
>   $ mkdir test_link
>   $ cd test_link/
>   $ ln -s /tmp/ link_to_tmp
>   $ ls -l
>   total 0
>   lrwxrwxrwx. 1 kikinovak kikinovak 5 Sep 17 10:56 link_to_tmp -> /tmp/
>   $ rm link_to_tmp/
>   rm: cannot remove ‘link_to_tmp/’: Is a directory
>   $ rmdir link_to_tmp/
>   rmdir: failed to remove ‘link_to_tmp/’: Not a directory
> 
> I tried the same thing on a different box, running Slackware 14.2, and I
> can remove my symbolic link without any hassle.
> 
> I sense something is very wrong here. Any suggestions?
> 

Yeah, it's just one of the oddities of symlinks.  Try doing the rm
command without the trailing slash.  A symlink isn't a directory, it's
an entry that links to a directory - but if you put the trailing slash,
rm thinks it is a directory so won't touch it. I think it depends on at
what stage the symlink is dereferenced in the rm command.  Presumably
the rmdir command checks the filetype before doing anything.

I came across this when using tab completion - that puts the extra
slash on the end when encountering a directory and it caused me to go
looking for the answer.

P.






More information about the CentOS mailing list