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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值