Chinaunix首页 | 论坛 | 博客
  • 博客访问: 762520
  • 博文数量: 274
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 862
  • 用 户 组: 普通用户
  • 注册时间: 2015-10-24 15:31
个人简介

不合格的程序猿

文章分类

全部博文(274)

文章存档

2019年(3)

2018年(1)

2017年(4)

2016年(160)

2015年(106)

我的朋友

分类: 系统运维

2016-05-18 19:11:22

原文地址:bash的通配符与特殊符号 作者:w787815


  1. bash的通配符与特殊符号
  2. 在 bash 的操作环境中还有一个非常有用的功能,那就是通配符 (wildcard) ! 我们利用 bash 处理数据就更方便了!底下我们列出一些常用的通配符喔:

  3. 符号    意义
  4. *    代表『 0 个到无穷多个』任意字符
  5. ?    代表『一定有一个』任意字符
  6. [ ]    同样代表『一定有一个在括号内』的字符(非任意字符)。例如 [abcd] 代表『一定有一个字符, 可能是 a, b, c, d 这四个任何一个』
  7. [ - ]    若有减号在中括号内时,代表『在编码顺序内的所有字符』。例如 [0-9] 代表 0 到 9 之间的所有数字,因为数字的语系编码是连续的!
  8. [^ ]    若中括号内的第一个字符为指数符号 (^) ,那表示『反向选择』,例如 [^abc] 代表 一定有一个字符,只要是非 a, b, c 的其他字符就接受的意思。
  9. 接下来让我们利用通配符来玩些东西吧!首先,利用通配符配合 ls 找檔名看看:

  10. 复制代码
  11. [root@www ~]# LANG=C <==由于与编码有关,先配置语系一下

  12. 范例一:找出 /etc/ 底下以 cron 为开头的档名
  13. [root@www ~]# ll -d /etc/cron* <==加上 -d 是为了仅显示目录而已

  14. 范例二:找出 /etc/ 底下文件名『刚好是五个字母』的文件名
  15. [root@www ~]# ll -d /etc/????? <==由于 ? 一定有一个,所以五个 ? 就对了

  16. 范例三:找出 /etc/ 底下文件名含有数字的文件名
  17. [root@www ~]# ll -d /etc/*[0-9]* <==记得中括号左右两边均需 *

  18. 范例四:找出 /etc/ 底下,档名开头非为小写字母的文件名:
  19. [root@www ~]# ll -d /etc/[^a-z]* <==注意中括号左边没有 *

  20. 范例五:将范例四找到的文件复制到 /tmp 中
  21. [root@www ~]# cp -a /etc/[^a-z]* /tmp
  22. 复制代码
  23.  

  24. 除了通配符之外,bash 环境中的特殊符号有哪些呢?底下我们先汇整一下:

  25. 符号    内容
  26. #    批注符号:这个最常被使用在 script 当中,视为说明!在后的数据均不运行
  27. \    跳脱符号:将『特殊字符或通配符』还原成一般字符
  28. |    管线 (pipe):分隔两个管线命令的界定(后两节介绍)
  29. ;    连续命令下达分隔符:连续性命令的界定 (注意!与管线命令并不相同)
  30. ~    用户的家目录
  31. $    取用变量前导符:亦即是变量之前需要加的变量取代值
  32. &    工作控制 (job control):将命令变成背景下工作
  33. !    逻辑运算意义上的『非』 not 的意思!
  34. /    目录符号:路径分隔的符号
  35. >, >>    数据流重导向:输出导向,分别是『取代』与『累加』
  36. <, <<    数据流重导向:输入导向 (这两个留待下节介绍)
  37. ' '    单引号,不具有变量置换的功能
  38. " "    具有变量置换的功能!
  39. ` `    两个『 ` 』中间为可以先运行的命令,亦可使用 $( )
  40. ( )    在中间为子 shell 的起始与结束
  41. { }    在中间为命令区块的组合!
  42. 以上为 bash 环境中常见的特殊符号汇整!理论上,你的『档名』尽量不要使用到上述的字符啦!

  43.  

  44. 转自 http://vbird.dic.ksu.edu.tw/linux_basic/0320bash_4.php#settings_wildcard

阅读(814) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~