Linux介绍-bash (3) |
|
| 2004-05-25 |
| |
通配符
另一个使命令输入变得更简单的方法是在命令中使用通配符。bash 支持三种通配符:
* 匹配任何字符和任何数目的字符
? 匹配任何单字符
[...] 匹配任何包含在括号里的单字符
* 通配符的使用有些象命令补齐。例如,假设当前目录包含以下文件:
News/ bin/ games/ mail/ samplefile test/
如果你想进入 test 目录,你将键入 cd test, 或者你想用命令补齐:
cd t
现在有第三种方法来做同样的事。因为仅有一个文件以字母 t 开头,你也能用 * 通配符来进入该目录。键入下列命令:
cd t*
* 匹配任何字符和任何数目的字符,所以 shell 将把 t* 替换为 test(当前目录里唯一和通配方案匹配的文件)。当前目录里只有一个文件以字母 t 开头的话这将是可靠的。但是如果当前目录里有不止一个文件以字母 t 开头,shell 将试着进入第一个符合匹配方案的目录,这个目录是以字母表排序的第一个目录,这个目录也许是也许不是你所期望的。
通配符 * 的一个更实际的用途是通配你要执行的命令中的多个名字相似的文件。例如,假设当前目录里包含以下文件:
ch1.doc ch2.doc ch3.doc chimp config mail/ test/ tools/
如果你需要打印所有扩展名是 .doc 的文件,你能使用象这样简化的命令:
lpr *.doc
在这个例子中,bash 将把 *.doc 替换为当前目录下所有文件名符合通配方案的文件。在 bash 进行了替换后,该命令将被处理为:
lpr ch1.doc ch2.doc ch3.doc
lpr 命令将以ch1.doc, ch2.doc, 和 ch3.doc为参数被调用。
--------------------------------------------------------------------------------
注意: 除了以上给出的例子外,还有几种方法:
lpr *doc
lpr *oc
lpr *c
--------------------------------------------------------------------------------
通配符 ? 除了只能匹配单个字符外,其他功能都与通配符 * 相同,如果用通配符 ? 来打印前面提到的那个目录里所有扩展名是 .doc 的文件的话,键入下面的命令:
lpr ch?.doc
通配符[...]能匹配括号中给出的字符或字符范围。同样以前面的目录为例,打印那个目录里所有扩展名是 .doc 的文件,你可以键入下列命令之一:
lpr ch[123].doc
或者:
lpr ch[1-3].doc
|
|
| |
|
发表评论
推荐文章
关闭窗口
|
|
|
|