华广网:clobber和glob

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 00:41:56

clobber和glob

分类: 笔记 2010-01-29 22:24 267人阅读 评论(0) 收藏 举报

在Linux的各种文献中,经常碰到这两个词汇,每次查完后,过不久就又会忘记,今天就把它们的区别记录下来。


一、依据wikipedia的解释,clobber的意义可分为三种:

1.覆盖,通常是无意的,覆盖的对象通常是文件(To overwrite, usually unintentionally)。

下面的句子说明了clobber的用法。

I walked off the end of the array and clobbered the stack.

再看bash的例子:

>set -o noclobber

>echo hello > bb

>echo hello > bb

bb: File exists.

由于设置了noclobber,也即不允许覆盖,第二次echo语句执行时无法覆盖bb文件,bash提示出错。

2.在makefile中,make clobber的功能是把上一次make命令生成的文件或目录清除掉,效果比make clean更严格。

3.在汇编语言中,clobbered registers指在指令执行过程中可能会被覆盖的寄存器。

 

二、glob是一种特殊的模式匹配。最常见的即是通配符的扩展,如bash下输入“ls *.log”命令,其中的*.log即会被扩展成当前目录下所有以.log为后缀的文件列表,这样的扩展行为即称为glob或globbing。根据man glob的说明,这个名字是起源于早先Unix V6版本中的/etc/glob命令。至于为什么那个命令叫glob,也是无从得知。

 

总结,clobber和glob这两个单词根原来英文本义基本无关,称为专业术语也不太恰当,更恰当说法应该是“专业俚语”。无法从英文角度来看这两个词汇,只能记住它们各自的含义,没有其他好的办法。另,在数据库中有两个相似的术语blob和clob,分别是binary large object和character large object的缩写,有章可循,并没有clobber或glob这么来得古怪。