电脑技术学习

对话 UNIX:第 2 部分: 做得多不如做得巧

dn001

  命令 2 查找名称以点号开头的条目(即 .*)。第 3 个命令仅查找那些单字母后缀的项目。

  第 4 个命令仅查找那些 4 个字母后跟点号和单个字符的项目。最后,命令 5 查找这样的项目:以小写字母 a、b 或 c 开头,后面至少跟一个字母,然后可以是任何内容,接着是点号和任何后缀。正如所看到的,您可以根据实际情况重复使用这些通配符匹配操作符。

  清单 3. 通配符示例

1 $ ls -1 -a -F
./libs
ChangeLog
ChangeLog-branches/
Makefile
Makefile.in
alloca.c
ansi2knr.c
cmpt.c
cmpt.o
config.h
config.h.in
connect.c
connect.h
connect.o
convert.c
convert.h
convert.o
...
wget*
2 $ ls -a -F .*
./lib
3 $ ls -1 *.?
alloca.c
ansi2knr.c
cmpt.c
cmpt.o
config.h
connect.c
connect.h
connect.o
convert.c
convert.h
convert.o
...
4 $ ls -1 ????.?
cmpt.c
cmpt.o
5 $ ls [a-c]?*.*
alloca.c
ansi2knr.c
cmpt.c
cmpt.o
config.h
config.h.in
connect.c
connect.h
connect.o
convert.c
convert.h
convert.o
cookIEs.c
cookies.h
cookies.o

  那么,ls *.z 将会产生什么样的结果呢(假设不存在这样的文件)?它将产生一条有用的错误消息:

$ ls *.z
zsh: no matches found: *.z

  关于(命令)历史

  到目前为止,您已经了解了如何指定路径和选择相应的文件。您可以在命令行中描述需要完成的任务。然而,即使所有的命令行都很短并且很简单,但您仍然有可能对反反复复地输入这些相同的内容而感到厌烦。尤其是,您可能厌倦了输入冗长的、复杂的命令行,其中可能包含大量的选项、或者参数的顺序有严格的要求。幸运的是,大多数 Shell 都维护了以前命令的历史。要再次运行一个命令,只需从这个历史列表中找到相应的条目,然后再次运行它。与 Shell 中其他的部分一样,通过快捷方法可以快速和轻松地进行引用。

标签: