目前遇到的windows非法文件和目录名主要有以下几种
1、带点的目录名
例子:
d:/wwwroot/mysite/aaa..
创建:
md d:/wwwroot/mysite/aaa../ [win2008]
md d:/wwwroot/mysite/aaa.../ [win2003]
删除:
rd d:/wwwroot/mysite/aaa../ [win2008]
rd d:/wwwroot/mysite/aaa.../ [win2003]
2、文件名或者文件夹名是系统设备名的
(系统设备名大全见我的文章:《Windows中不允许用来创建文件名或者目录名的字符及字符串》)
例子:
d:/wwwroot/mysite/COM1
创建:md //./d:/wwwroot/mysite/COM1
删除:rm //./d:/wwwroot/mysite/COM1
d:/wwwroot/mysite/NUL.htm
创建:md //./d:/wwwroot/mysite/NUL.htm
删除:rm //./d:/wwwroot/mysite/NUL.htm
3、可见、可打开、不可删除的非法文件
创建
md "d:/wwwroot/mysite/test / "
注意,例句中有空格,该文件可见,可打开,可在该文件夹下创建、拷贝、删除文件,但不可删除。
打开
start d:/wwwroot/mysite/test../
删除
rd "d:/wwwroot/mysite/test / "
4、隐藏、不可打开的非法文件
在DOS系统中(实际上WINDOWS系统和LINUX也可以使用),“.”代表当前目录,“..”代表上级目录,正式利用这点,来创建混淆目录。
创建(FAT可以,NTFS不可以)
md d:/wwwroot/mysite/.../
注:该文件夹在windows上不可见、不可打开、不可删除。
打开
start d:/wwwroot/mysite/.../
删除
rd d:/wwwroot/mysite/.../
其他删除方式
1、新建一个文本文档,写入下面的命令:
DEL /F /A /Q //./%1
RD /S /Q //./%1
另存为 统统删除.bat 然后把你要删除的顽固的文件夹拖动到这个BAT命令上,就可以自动运行删除命令了
2、通过“dir /x”找出它的8.3格式的短文件名,再进行删除
3、对于一些被锁定的文件,可以使用unlocker进行删除