基础知识
正斜杠,又称左斜杠,符号是"/"。反斜杠,也称右斜杠,符号是"\"。 记忆方法:关于这两个的辨别记忆,可以想一想乒乓球的正手与反手打发。有部分中国国内的计算机使用者开始使用【撇斜杠】和【捺斜杠】来对应“正斜杠”和“反斜杠”,以便达到快速交流理解的目的。 补充一个图更容易记住哪个是斜杠,哪个是反斜杠。 使用说明 windows系统: 反斜杠“\“用来表示目录; 正斜杠“/”用来表示网址、Url地址。 正斜杠“/”是表示参数,“\”是表示本地路径。 正斜杠“/”表示除法,分隔。在windows系统中通常用来分隔命令行参数,/ 表示选项等。不能作为文件名isiss/。正斜杠"/"在某些文档里面表示“或”,如通讯方式GSM/GPRS/3G,表示采用其中一种通讯方式。 DOS路径: C:\WINDOWS\SETTING ..这是反斜杠的作用后面跟着的是文件名 C:\dir /P ..这就是正斜杠后面是一个命令的参数,dir 是命令。 unix系统: 正斜杠“/”表示目录。由于web遵循unix命名,所以在网址(URL)中,正斜杠“/”表示目录。 “/”表示路径,“\”表示转义,“-”和“--”表示参数。 反斜线符号“ \ ”在Bash中被解释为转义字符,用于去除一个单个字符的特殊意义,它保留了跟随在之后的字符的字面值,除了换行符。如果在反斜线之后一个换行字符立即出现,转义字符使行得以继续,遇到命令很长时使用反斜线很有效;反斜线从输入流中被移除并有效地忽略。 例一: ubuntu@ubuntu:~echoechoHOME /home/ubuntu ubuntu@ubuntu:~$ echo $HOME $HOME 例子中,反斜线去除了“ $ ”字符的特殊意义,保留字面值,从而不输出home目录路径。 例二: ubuntu@ubuntu:~$ mv test.c \ > ../Downloads/ 例子中,反斜线使行得以继续,命令可以正常输入。 例三: 到这里就明白了怎么查看文件名为“ \ ”的文档了,只要输入命令 ubuntu@ubuntu:~$ vi \\ 就可以了,前一个反斜线保留了后一个反斜线的字面意思,即作为文件名输入了。 记忆方法:注意window这个单词的第一笔,也就是字母w的第一笔,是什么?没错,就是反斜杠,这样每次在想windows文件路径中用/还是\的时候,首先要想 到windows的第一笔是什么,答案自然就出来了。作为windows的对立面,linux或unix文件路径中用的自然就是/ 了。 编码注意 C++转义字符 在获取文件路径的时候 很多人喜欢用 "d:\test.txt",然后就会发生所谓的转义字符错误了。原因就是因为在此处“\test”中的“\t“转化为了TAB。从而导致打开文件失败。 在代码中,fp = fopen("D:\\D\\Dtest.log","r+"); fp = fopen("D:/D\\Dtest.log", "r+"); fp = fopen("D:D\\Dtest.log", "r+"); 效果相同,都可以打开文件。 在cmd.exe中,如下: 但是,看到这我有两个疑问:
- fp = fopen("D:D\\Dtest.log", "r+");
D:后面不带路径符号也可以吗?为什么?
- 在CMD中,执行type D:D\test.log,
此处的“D:D\test.log”是不是作为参数传入的?其中的“\test”处的\t,为什么不是作为转义字符传入,为什么仍然能打开文件?相关知识 相对路径:相对路径就是指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。
从C:\log文件夹进入C:\Users\zhang-xch文件夹,需要输入cd ../Users\zhang-xch 注意:相对路径的文件夹符号是斜杠:/ 绝对路径:在www中(广域网),以http开头的链接都是绝对路径。 物理路径:物理路径指的是某一台计算机本地的路径,以盘符开头,例如C:\、D:\temp等等 历史问题 Windows 用反斜杠(“\”)的历史来自 DOS,而 DOS 的另一个传统是用斜杠(“/”)表示命令行参数,比如: cd %SystemDrive% dir /s /b shell32.dll 既然 DOS 这边斜杠被占用了,只好找一个最接近的。那就是它了。而在 UNIX 环境中,我们用减号(“-”)和双减号(“--”)表示命令行参数。 用斜杠表示命令行参数是兼容性原因。这个问题最初起源自 IBM。IBM 在最初加入 DOS 开发时贡献了大批工具,它们都是用斜杠处理命令行参数的。而这个传统源自于 DEC/IBM,比如当年的 VMS 就是用斜杠处理命令行参数,它的目录分隔符是美元符(“$”)。顺便说一句,这个传统也被部分地继承进了 DOS 和 Windows 体系,日文版的 Windows 就把反斜杠在屏幕上显示为“¥”,虽然实际上还是反斜杠。 如今的 Windows 内核在处理路径时确实可以同时支持斜杠和反斜杠。很多时候我们看到用斜杠时出错,是因为应用程序层面的原因。比如 cmd.exe 就不支持用斜杠表示路径,而PowerShell.exe 支持,也正因为这个原因,PowerShell 开始转而使用减号作为命令行参数的起始符。 由此也可以看出Windows或者说DOS在设计初期考虑不够 周全,为了和Unix一些特征区别开来,将Unix中的正斜杠"/"分隔路径方式改变成了反斜杠"\"。这样改变导致的一个问题就是在早期DOS命令行 中,正常的文件名是不能包含空格的,如果包含了空格,会导致输入这样的文件名时,命令解析无法将其和参数区分开。例如,想要进入"hutaow yuan"这个目录(在此先忽略8.3命名规则),直接输入"cd hutaow yuan",命令行会将其解析为进入"hutaow"目录,而后面的"yuan"做参数,这显然不是所期望的。【目前在cmd中,将带空格的文件名称做了如下处理】
而在Unix中,文件名如果包含空格,可以直接在空格前加上反 斜杠"\"进行转义,从而很好的和命令参数区别出来(参数之间一般使用空格分隔)。还是上面的例子,在Unix中,只要输入"cd hutaow\ yuan"(在yuan前面的空格前加上"\"),命令行会正确的辨认出"hutaow yuan"并进入这个目录。 当然,现在Windows的后续版本已经使用其它方法(比如文件名用双引号括住)解决了空格问题。 标签:斜线,路径,参数,斜杠,ubuntu,DOS From: https://www.cnblogs.com/bo0214/p/18503699