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。甚至不是符号链接或任何东西。???
请给我解释一下??
您应该使用所有这些命令来检查文件名中的各种字符(包括隐藏字符):
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”重命名它。另一个,您可能想要删除,将是您需要通过通配符指定的一个。尝试一下。