快速业务通道

在Unix中使用通配符提高操作效率

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-01
,还可以利用!运算符,如[!abc],则表示除a、b、c字符外的任何一个字符等等.这些通配符主要用来实现更加精确的限制.有时候在脚本程序中实现比较严格的控制往往可以提高很好的作用.

  三、通配符的使用注意事项.

  虽然通过使用通配符,可以提高我们的工作下效率.但是通配符毕竟跟其他字符不同,如果使用的不好的话,是会闯祸的.特别是跟一些删除、重命名等破坏性命令一起使用的时候,更加需要注意通配符使用过程中的一些禁忌.具体的来说,笔者认为在Unix操作系统中使用通配符的禁忌主要包括如下几个方面.

Empire CMS,phome.net

  是需要注意空格符的影响.如rm *.txt 与rm * .txt两个命令,他们有什么区别呢?从形式上,一下子看不出有多大的区别.不过仔细一看,我们可以看到第二个命令在通配符*号与扩展名.txt中间多了一个空格.虽然这只是一个很小的差异,但是Unix操作系统在处理的时候,可是会相差很大的.系统工程师或者用户本来想使用rm *.txt命名来删除当前目录下的所有txt文件;但是结果使用了rm * .txt命令(可能是在输入的过程中不小心在通配符*号后面多按了一个空格符).此时操作系统会把当前文件夹下的所有文件都删除.也就是说,如果在通配符*后面有一个空格的话,则其就会忽略空格后面的文本,而表示当前目录下的所有文件.为此在使用*通配符(其他通配符也一样),一定要注意这个空格特殊字符的影响.特别是在使用这些rm命令的时候,最好还是通过交互性的方式执行.如此可以确保操作操作的文件正是用户所想操作的目标文件.从而防止错误的命令导致数据被删除,信息被修改等等难以挽回的损失.


其次需要注意不同版本之间对于通配符的支持度是不同的.如通配符[!abc]或者通配符[abc]在c shell下就是不能够识别的.如果在编写脚本程序的时候,要尽量少用这些通用性不好的通配符.这对脚本程序的移植性不利.在编写脚本程序时,能够使用*或者?等通配符的,就使用这些通配符.这些通配符基本上每个shell都是支持的.为此在脚本程序移植的过程中,就不会遇到兼容性的问题.不过要了解的是,通配符*号与通配符?号能够表示多个字符或者单个字符,而不能够对字符的范围进行进一步的限制.但是像[abc]等等通配符形式却可以实现精确的限制.系统工程师在使用通配符的时候,仍然需要根据用户的需求来选择.如果非要采用这些通配符的话,那么最好能够在脚本程序的注释中添加相关的说明.方便下次脚本程序移植时能够一目了然的知道这个情况,及时调整策略.

  第三需要注意通配符*与通配符/号使用的两个限制.在使用ls * 命令显示当前目录下的所有文件时,其是不会显示以点号开头的文件.这类文件,在Unix操作系统中表示的是隐藏文件.出于保护的目的,默认情况下不会显示这些隐藏文件(以.号开头的文件).如果系统工程师要想显示文件的话,则在通配符前面输入.号.其次这些通配符不能够代表目录中的/ 符号.也就是说,如果使用cd目录加通配符进行路径切换的话,则这个路径中不能够利用通配符来代表/符号.

Empire CMS,phome.net

  从以上的分析中可见虽然通配符提高了我们的办公效率里,但是在使用时或多或少仍然有一些限制.作为系统工程师,要把这些限制牢记于心.无论是在编写脚本程序,还是结合其他命令使用时,需要遵守这些使用过程中的禁忌.


Empire CMS,phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号