UNIX:同一路径上的两个同名目录?

VJ2*_*J22 8 unix directory path

当我浏览一个 unix 系统时,我发现五个,两个同名的目录列在同一路径上,当我做了一个 ls -Dl

这是视图,为什么我说五个,两个同名目录.....

//11/# ls -Dl

total 553

drwxrwxr-x  2 root      root          12288 Dec 20  2010 bin

drwxrwxr-x  2 root      root          16384 Sep 28  2010 bin

drwxrwxr-x 11 root      root           4096 Oct 25 06:49 etc

drwxrwxr-x 11 root      root           8192 May 17 07:40 etc

drwxrwxr-x  3 root      root           4096 Sep 28  2010 qnx4

drwxrwxr-x  4 root      root           4096 Jul 26  2010 qnx4

drwxrwxr--  4 root      root           4096 Sep 28  2010 registry

drwxrwxr-x  4 root      root           4096 Aug 31  2008 registry

drwxrwxr-x 16 root      root           4096 Sep 28  2010 usr

drwxrwxr-x 17 root      root           4096 May 27 03:49 usr
Run Code Online (Sandbox Code Playgroud)

这怎么可能??如果我 cd 其中任何一个会发生什么,我最终会进入哪个目录??

还有另一种看待它的方式,当我做ls -liF这里列出的目录时,会产生不同的 inode。甚至不是符号链接或任何东西。???

请给我解释一下??

anu*_*ava 8

您应该使用所有这些命令来检查文件名中的各种字符(包括隐藏字符):

printf "[%s]\n" *

printf "%s\n" * | cat -vte

printf "%s\n" * | od -bc
Run Code Online (Sandbox Code Playgroud)

最后一个还将转储每个转储八进制和 ascii 中的每个字符。


sda*_*zig -1

在每一对中,一个目录名可能包含不可打印的字符。尝试使用 mv 将它们移动到唯一的文件名。您不应该能够完整命名它,然后您可以使用通配符指定它。

您应该只需输入文件名即可重命名,因此您可以暂时使用“mv”重命名它。另一个,您可能想要删除,将是您需要通过通配符指定的一个。尝试一下。