我设法cd ..
用<path/to/git>\latest\usr\bin
in删除了 CMD Windows 中的“ ” %PATH%
。这使我可以访问rm.exe
.
vonc@VONCAVN7 C:\test
> where rm
D:\prgs\git\latest\usr\bin\rm.exe
我有:
vonc@VONCAVN7 C:\test
> dir /x
Volume in drive C is test
Directory of C:\test
08/08/2017 07:11 <DIR> .
08/08/2017 07:11 <DIR> ..
08/08/2017 07:11 0 cd ..
有了这个,我输入:
vonc@VONCAVN7 C:\test
> rm cd*
然后文件cd ..
不见了
rm.exe
不是 Linux 应用程序。它使用msys-2.0.dll
,它与来自kernel32.dll
.NET 的Windows API 函数和来自ntdll.dll
.
在这种情况下,它是如何绕过 Windows API 进行直接系统调用来解决问题的:(NtOpenFile
打开目录列出它并打开“cd ..
”文件删除它),NtQueryDirectoryFile
(列出目录),和NtSetInformationFile
(设置文件的删除处置)。
正如eryksun评论的那样,纯 Windows 语法(意思是,它不需要类似 Git Linux 的命令rm
)也可以工作:
del "\\?\C:\test\cd .."
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句