我正在尝试在类似Unix的系统中模拟路径解析的过程(请参见手册页path_resolution)。
我的操作系统是带有GNU coreutils 8.7的Linux。
为了阐明在解析度中额外尾随“ /”的含义,我在shell中做了以下操作:
mkdir this_is_dir
ln -s this_is_dir this_is_link
rm this_is_link
一切都很好,因为this_is_link是一个符号链接,而我只是将其删除了。但是在尝试时:
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
好吧,我认为是跟在符号链接后面的“ /”引起的。因此,我尝试了另一个命令:rmdir this_is_link/
有趣的结果出来了: rmdir: failed to remove 'this_is_link/': Not a directory
不是我所期望的。因此,我请朋友确认是否可以在他的系统上获得相同的结果。他的coreutils版本比我低。而结果是惊人的,无论rm
或者rmdir 'this_is_link/'
,相同的错误Not a directory
发生。
另一个朋友刚刚在他的Mac OS上进行了尝试,结果是:rm
=>'是目录',rmdir
=>目录已成功删除,链接仍然存在。
是否有关于路径解析的确切行为的规范?