zoukankan      html  css  js  c++  java
  • 正斜杠“/”与反斜杠””

    基础知识
    正斜杠,又称左斜杠,符号是"/"。反斜杠,也称右斜杠,符号是""。
    记忆方法:关于这两个的辨别记忆,可以想一想乒乓球的正手与反手打发。
    补充一个图更容易记住哪个是斜杠,哪个是反斜杠。

     使用说明
    windows系统:
    反斜杠““用来表示目录;正斜杠“/”用来表示网址、Url地址。
    “/”是表示参数,“”是表示本地路径。
    DOS路径:
    C:WINDOWSSETTING   ..这是反斜杠的作用后面跟着的是文件名
    C:dir /P        ..这就是正斜杠后面是一个命令的参数,dir 是命令。
    unix系统:
    正斜杠“/”表示目录。由于web遵循unix命名,所以在网址(URL)中,正斜杠“/”表示目录。
    “/”表示路径,“”表示转义,“-”和“--”表示参数。
    反斜线符号“ ”在Bash中被解释为转义字符,用于去除一个单个字符的特殊意义,它保留了跟随在之后的字符的字面值,除了换行符。如果在反斜线之后一个换行字符立即出现,转义字符使行得以继续,遇到命令很长时使用反斜线很有效;反斜线从输入流中被移除并有效地忽略。
    例一: ubuntu@ubuntu:~$ echo $HOME
    /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: est.txt",然后就会发生所谓的转义字符错误了。原因就是因为在此处“ est”中的“ “转化为了TAB。从而导致打开文件失败。
    在代码中,fp = fopen("D:\D\Dtest.log","r+");
    fp = fopen("D:/D\Dtest.log", "r+");
    fp = fopen("D:D\Dtest.log", "r+");
    效果相同,都可以打开文件。
    在cmd.exe中,如下:

    但是,看到这我有两个疑问:
    1. fp = fopen("D:D\Dtest.log", "r+");
    D:后面不带路径符号也可以吗?为什么?
    1. 在CMD中,执行type D:D est.log,
    此处的“D:D est.log”是不是作为参数传入的?其中的“ est”处的 ,为什么不是作为转义字符传入,为什么仍然能打开文件?
    相关知识
    相对路径:相对路径就是指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。

    从C:log文件夹进入C:Userszhang-xch文件夹,需要输入cd ../Userszhang-xch
    注意:相对路径的文件夹符号是斜杠:/
    绝对路径:在www中(广域网),以http开头的链接都是绝对路径。
    物理路径:物理路径指的是某一台计算机本地的路径,以盘符开头,例如C:、D: emp等等
    历史问题
    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的后续版本已经使用其它方法(比如文件名用双引号括住)解决了空格问题。

    您的资助是我最大的动力!
    金额随意,欢迎来赏!

  • 相关阅读:
    Wakeari(有诡)念摄模式的渲染原理和帧率暴跌原因分析,及更优化的渲染方案设想
    离心力与木桶实验
    搬家成功!
    x264编码参数大测试:05 subme与crf(g)
    四探C#类与结构体究竟谁快——跨程序集(assembly)调用
    x264编码参数大测试:03 subme与crf(c)
    昨日购买了华为U8800+。晒联通2.2版系统与官方2.3版系统的评测跑分。
    用JavaScript生成Android SDK的下载地址(3)——放弃xsl,纯JavaScript转换xml为html
    向量除法——标量乘法的逆运算
    [Color]灰度系数与网点增大
  • 原文地址:https://www.cnblogs.com/Corphish/p/7144167.html
Copyright © 2011-2022 走看看