欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Windows和Unix/Linux的文件路径分隔符及命令行参数风格

程序员文章站 2022-05-25 23:47:15
...

Unix是最先出现的,使用的文件分隔符就是slash '/'。比如:

$ pwd
/home/engineer/work

然后随着网络协议的发展,网络地址也采用了类似的分隔符,比如:

http://www.google.com/index.html

众所周知,比尔盖茨发明了Dos系统,在Dos系统里,命令的参数是斜线形式的,比如:

C:\DOING\Coding>dir /P/B
CH101

执行dos命令时,解析命令行参数时,如果出现斜线,那后面的一个字母就是参数。
这就没法使用斜线来表示路径的分隔了,于是使用了back slash反斜线 '\'。
Dos里使用反斜线,于是在图形操作系统Windows中也继承了Dos的用法,尤其一开始Windows的核心还是Dos系统。

但随着Windows系统的不断升级和更新,Dos系统已经边缘化或者淘汰了,现在在Windows资源管理器里或者代码编程里,使用斜线来表示路径也能正常使用了,两种方式很多情况下可以互换。

-----------------------------------------------------------------------

那么这里还要说一下类Unix系统的shell命令的参数形式,一般分三种:
1,Unix风格
Unix风格的参数是从贝尔实验室开发的AT&T Unix系统上原有的命令继承下来的。比如:

$ls -lar

$git commit -am "xxx"

一个短横线后面可以同时接多个字母参数,也可以分开。

$ls -a -r -l

$ls -arl

2,GNU风格
一般是Linux系统用的Linux内核加GNU的软件,使用的两个短线,double dash:

$ grep --extended-regexp --recursive *.c  ./

$ grep -E -r *.c ./

$ grep -Er *.c ./

当然Linux系统里也支持Unix风格,一般是一个shell命令的参数两种形式都支持,一种是long option,一种short option,分别是两个短横线后面接个单词,和一个短横线后面接个字母。
使用双横线的好处,后面单词中可以使用单个短横线作为分隔符。

3,BSD风格
伯克利软件发行版(Berkeley software distribution,BSD)是加州大学伯克利分校开发的一个Unix版本。比如:

$ ps aux

$ tar xzvf test.tar.gz

$ ps -aux

tar, tape archive命令和ps命令。

上面这三种风格,随着操作系统不断完善,兼容性和支持性上一般都不会造成使用上的困扰。
较为常用的还是前两种,主要区别就是长短不同。

还有个小技巧,Linux命令的结构一般是:

命令 + 参数 + 文件/路径

当我们使用短横线来表示参数,那以短横线开头的文件名就没法使用了。
比如一个文件名为"-myfile.txt"的文件。这时我们使用一个不带参数的双横线,来表示命令行参数的结束。

$ git checkout -- -myfile.txt

相关标签: 软件开发 linux