关于末尾带"."的目录名 无法删除目录的介绍

一.关于末尾带“.”的目录名

在 Windows 系统中建立文件夹时名字的最后不能是“.”,不论你加多少个点,都会被 Windows 忽略。在命令提示符(CMD)下用“md”命令创建文件夹时同样如此。
我们知道符号“/”是路径的分隔符号,如果我们在创建文件夹时在最后追加一个“/”,明确的告诉系统前面的内容为文件夹名,那会是什么结果呢?
经验证,在资源管理器中创建文件夹时无法使用象“/”之类的字符作为文件夹名,所以这个设想在图形界面下失败了;但可喜的是,CMD中可以成功绕过这个限制。


二.末尾带“.”目录的建立

通过实际操作,我发现在创建名称最后有“.”的文件夹时,要在目录名后再追加“./”才会成功(下文在提到“含N个点”的目录名时,“./”中的“.”都 不计入数字“N”中)。而且单独建立的这种文件夹,在Windows资源管理器中是无法访问的。关于这句话要加上“单独”二字的原因,我会在介绍访问这种 目录的方法时加以解释。
在CMD中,可以用“md a../”建立名为“a.”的文件夹,也可用“md a.../”建立名为“a..”的文件夹,只要你愿意,多弄几个点也没关系。当然,同目录中的“a.”和“a..”也是两个不同的文件夹,毕竟它们的名字不同嘛。
而且“.”还可以位于目录的开头,如用“md .a../”可以建立“.a.”文件夹。甚至还可以用“md ..../”建立名为“...”的文件夹,和建立“a.”一样,后面多几个点同样可以成功。
这种目录对于Windows资源管理器是非法的,用普通方法无法对其访问。

注意,纯以点命名的文件夹最少要三个点才能在Windows资源管理器下可见。这可能是因为“.”和“..”都已被系统定义,分别代表当前目录和父目录 (如在配置path变量的时候可以用“.”来代表文件当前目录;在CMD中用“cd..”命令可返回父目录等)。但是实际操作中我发现,如果使用“md .../”,同样可以建立名为“..”的文件夹,它在Windows图形界面下不可见,不过在CMD中可以用dir命令看到它。
如果某目录中除了系统生成的“..”目录,还存在用户创建的“..”目录,那么该父目录无法删除并提示出错。因为这个“..”目录在图形界面下不可见,所以问题很隐蔽。
我还遇到过因为没有正常弹出闪存盘就直接拔出,导致某文件夹中系统生成的“.”和“..”目录都丢失,造成该文件夹无法删除的问题。我用了一些办法都无法创建“.”目录,最后以对其格式化告终(惭愧啊……)。

那么,能不能“非法套非法”呢?答案是肯定的。你可以在“a.”目录存在的情况下,用“md a../b../”建立“a.”下的“b.”目录。注意,如果上一级的非法目录并不存在就直接运行“md a../b../”,则无法创建出任何非法的目录。

三.末尾带“.”目录的访问

虽然建立了这种非法目录,但在Windows资源管理器中或用cd命令都无法直接对其访问。但这并不表示我们就对它束手无策了。
Windows 及 CMD 为兼容早期的“8.3”命名规范,允许用目录名的前六个字符加“~1”进入该目录(如“Program Files”目录可以用命令“cd progra~1”进入)。如果有多个目录的前六个字符相同,则“~”后的数字按目录建立的先后顺序递增。
使用这种方法,就可能因“~1”替代了“.”而轻松进入以“.”结尾的文件夹。经验证,如果目录名的前三个字符是合法的,并且其后有“.”存在,就可以用 这三个字符加“~1”的方式进入,而不需要保证“~1”前一定要有六个字符。但对于像“a.”、“a.b.”、“.a.”、“...”之类的目录,因为前 三个字符中就出现了“.”,则该方法失效。我们在下面要讨论的,正是这种无法用“~1”进入的文件夹。


3.1 命令提示符下的操作

经过验证,CMD下的“cd”、“dir”、“del”等命令对这种文件夹都束手无策(乾坤大挪移之“~1”大法除外)。但除了它们,另有一群得力干将浮出水面。
下面以“a.”文件夹及其下的“1.txt”文件为例进行介绍:
首先是“type”命令,它是专门用来显示文本文件内容的。当然二进制文件也可以用它来显示,只不过显示出来的是一堆乱码,没有多大实际意义(倒是可以用来查看文件头)。例如用“type a../1.txt”就可以在CMD中查看1.txt的内容。

“copy”命令同样对这种非法目录名视若无睹。例如“copy 1.txt a../”可以将1.txt复制到“a.”中,“copy a../1.txt”则可以将“a.”中的1.txt复制出来。
在使用“copy”命令将文件从“a.”中复制出来时,必须知道文件的名字,如果你把它忘记了怎么办呢?“dir”可不支持这种非法目录哟,这里我向你介绍一条“曲线救国”之路,也算是dir命令无法使用时的应急方案吧。
我们知道,“copy”命令的参数中要求加上文件的路径,而这个路径必须是已存在的,否则会给出复制某个文件时找不到路径的提示,再加上“copy”命令支持通配符。于是,用“copy”暂时代替“dir”的方案“出炉”了:
要查看“a.”下的文件,只要用“copy”命令将它们复制到一个不存在的目录就可以了。如“copy a../*.* xyz/”(“*.*”可省略,“xyz”为不存在的目录名,“xyz”后的“/”不能省略),这时系统会逐一试图复制“a.”中的文件,但因“xyz” 目录不存在,于是再逐一提示“系统找不到指定的路径”。于是“a.”中的文件名我们就可以一览无余了。可惜这毕竟只是“兼职”方案,除了文件名,我们并不 能像使用“dir”那样得到文件大小,修改时间等更详尽的信息。

CMD中的“Edit”命令的功能相当于Windows下的记事本程序,它同样可以对付这种非法目录名。使用“Edit a../1.txt”就可以进入对1.txt文件的编辑环境了。但编辑完后只能用“Save”保存,而无法用“Save As”在这种目录中另存为一个新文件。另外该命令只对文本文件有一定意义,这也算它的局限之一吧。
好了,CMD中的命令就介绍到这里,我没有对其下的所有命令一一验证,毕竟这几个的平时用的还多些。如果需要,你可以自己再验证,过程并不难。

四.末尾带“.”目录的删除

最后就是如何删除这类文件夹了,这可用与“md”命令对应的“rd”命令实现,如“rd a../”就可以把“a.”目录删除。如果目录非空,则需要加上“/s”参数,如“rd /s a../”,随后按“y”确认。不想按“y”就再加上“/q”参数,这样可以启动安静模式以跳过确认直接删除,如“rd /s /q a../”。
请注意,如果某目录中存在用户建立的“..”目录,则无法使用“/s”参数直接将该目录删除,必须先单独删除“..”目录,才可以删除对应的父目录。

五.补记

在实际操作中,我还发现了几点问题。因为我感觉这与本文探讨的初衷没有什么关系,但又确实是在相关操作中可能遇到的实际情况,所以决定在这里以补记的形式写出来。

◆问题一:
在使用“~1”方法进入目录时,如果目录名中有不位于开头或末尾的点,虽然它是合法的,却无法用“~1”的方法,而只能用全名进入。如果是名字中连点都没有的“优等公民”,那只有目录名字大于8个字符且必须输入足够的前6个字符时,再加“~1”才能进入。
◆问题二:
如果在“a.”目录不存在的情况下运行“md a../b.../”,则生成“a”文件夹及其下的“b”和“b.”两个文件夹。
◆问题三:
在CMD下运行一次“cd ..../”(该目录可以不存在,并且目录名中的点大于3个就可以)没有任何提示,提示符显示的仍为原目录,用“dir”也没有问题,但再使用“cd”命 令进入其他目录会提示找不到路径,这时必须运行一次“cd..”以“退出”刚才“进入”的“...”,才能恢复正常。
上述情况还有一个特例,就是首先保证第一次运行的是“cd ..../”(必须是这个目录),然后再继续运行一次“cd ..../”(这次欲进入的目录任意),则CMD没有任何提示并且提示符会返回磁盘根目录,与前一点相同,需要运行一次“cd..”才能正常使用“cd” 命令。

附:

Windows 下不能够以下面这些字样来命名文件/文件夹,包括:“aux”“com1”“com2”“prn”“con”和“nul”等,因为这些名字都属于设备名称,等价于一个 DOS 设备,如果我们把文件命名为这些名字,Windows 就会误以为发生重名,所以会提示“不能创建同名的文件”等等。
当然,有一些特殊的方法可以投机取巧,建立以这些设备名为名的文件夹,比如我们在命令提示符下执行“md C:/aux//”,就在 C 盘建了一个名叫 aux 的文件夹。此文件夹虽然可以访问,也可以建立子文件夹,但却无法删除,因为 Windows 不允许以这种方式删除设备。在系统看来,这个 aux 文件夹就是设备。
那么,如何删除这样的文件/文件夹呢?我们只要按照完整的 UNC 路径格式,就是网上邻居的路径格式,正确输入文件路径及文件名即可。比如要删除 C 盘下的 aux 文件夹,可在命令提示符下执行:rd /s //./C:/aux,rd 是命令提示符删除文件夹的命令,/s 参数表示从所有子目录删除指定文件。再比如要删除 C 盘 temp 文件夹下的 nul.exe 文件,在命令提示符下执行:del //./C:/temp/nul.exe 即可。

(0)

相关推荐

  • Windows7系统自带光盘刻录功能图文详细介绍

    很多朋友的电脑都配置有刻录机,通常情况下需要安装专门的刻录软件来完成光盘的刻录。其实,Windows7系统自带有光盘刻录功能,不需要安装第三方刻录软件也能刻录光盘。下面我们就以Win7旗舰版为例,为大 ...

  • 如何强制删除文件或文件夹的方法(黑客创建的设备名文件夹)

    如果是普通的文件可以通过下面的方法删除 怎样强制删除文件夹? 一个无敌删除命令,任意无法删除的文件都能删除 新建 文本文档 写入下列命令: 复制代码 代码如下: DEL /F /A /Q //?/%1 ...

  • 利用电脑系统自带清理工具清理电脑垃圾

    电脑系统就像房间一样,长时间不打扫,就会很乱,产生很多垃圾,慢慢的会发现电脑的C盘空间越来越小,电脑的反映也越来越迟顿,今天我就和大家分享一下,系统自带清理工具进行深度清理电脑里的垃圾. 方法/步骤 ...

  • Win10如何用过自带的工具快速对硬盘分区?

    假如你是最近想尝鲜安装了 windows 10 操作系统,但是却不知道怎么给win0 硬盘进行分区,所以关于win10硬盘分区的相关问题可能就会一直困扰着你.其实到了WIndows7,情况有了明显改善 ...

  • Win10系统自带截图功能失效怎么办

    Win10系统自带截图功能失效怎么办?Windows10正式版系统自带了截图功能,用户可以使用它进行全屏截图或截取活动窗口的图片.不过,偶尔用户也会遇到截图功能失效的情况,如无法保存截图等问题.那么, ...

  • Windows10系统自带地图应用无法使用的解决方案

    Windows10系统自带地图应用无法使用的解决方案 解决方案: 1.在Windows10系统下,点击开始图标按钮,在弹出的开始菜单选项框中,选择"设置"选项并点击它. 2.点击设 ...

  • Win10利用自带的颜色管理校准显示器颜色

    一般显示器不同,某种颜色的显示效果也会不一样,大家喜欢的系统显示颜色也会不一样,想要显示出自己喜欢的颜色就需要对显示器颜色进行校正设置下面小编就为大家详细介绍Win10利用自带的颜色管理校准显示器颜色 ...

  • word如何打带圈、带方框、带三角的数字或字母?

    用word文档打字,可以打上圈.打上方框.打上三角形把文字围起来.如图中的样式.详细操作步骤请往下看. 步骤 1.小编新建word文档为例演示操作步骤 . 在文档中输入数字“5”,选中“5”字: 然后 ...

  • 如何利用word自带的模板快速制作简历?

    在word如何要做简历.宣传单页的话,从头输入是很困难的,那如何利用word自带的模板来快速完成呢?我们来学习一下. 步骤 打开word文档,点击文件-新建. 例如第一眼就能看到夏季宣传单页,点击创建 ...