Shell - 通配符 Wildcards

在前面的博文中,介绍了cp、mv、mkdir、rm、ln命令,都是Linux中经常使用到的命令。

它们是用来对文件和文件夹进行操作的。

它们完成的任务,使用图形界面也可做做到,比如拖拽文件或文件夹,剪切、删除文件等。

使用命令行,并没有比图形界面操作更方便快捷。

但使用命令行的好处是功能更强大和灵活,很多命令行能做到的事,图形界面无法做到。

记得为这些命令设计的很多参数了吧,用了这些参数可以满足各种情况的需求。

对于shell命令的强大之处,这里介绍一下其中一个重要特性:通配符。

在shell中,使用文件名是非常频繁的。所以为了快速对一组文件名进行操作,就提供了一些特殊的字符来协助。

这些特殊字符就叫做通配符。英文名Wildcards或globbing。

使用特殊组合的字符,让我们可以选择一组文件。

Wildcard

Meaning

*

Matches any characters

?

Matches any single character

[characters]

Matches any character that is a member of the set characters

[!characters]

Matches any character that is not a member of the set characters

[[:class:]]

Matches any character that is a member of the specified class

下面是常用的character class:

Character Class

Meaning

[:alnum:]

Matches any alphanumeric character

[:alpha:]

Matches any alphabetic character

[:digit:]

Matches any numeral

[:lower:]

Matches any lowercase letter

[:upper:]

Matches any uppercase letter

使用这些通配符的组合,就可以构造出复杂的选择条件,得到指定组合的文件名。

下面举一些各种模式的例子:

Pattern

Matches

*

All files

g*

Any file beginning with "g"

b*.txt

Any file beginning with “b” followed by any characters and ending with “.txt”

Data???

Any file beginning with “Data” followed by exactly three characters

[abc]*

Any file beginning with either an “a”, a “b”, or a “c”

BACKUP.[0-9][0-9][0-9]

Any file beginning with “BACKUP.” followed by exactly three numerals

[[:upper:]]*

Any file beginning with an uppercase letter

[![:digit:]]*

Any file not beginning with a numeral

*[[:lower:]123]

Any file ending with a lowercase letter or the numerals “1”, “2”, or “3”

在上面的表述中,有一种范围表示法,在老的Unix和Linux中,都是支持的,现在也还是能用的,但请小心点。

比如[A-Z]、[A-z]就表示A-Z之间的任意字符和A-z之间的任意字符。

因为按照ASCII码顺序,数字在字母前,大写字母在小写字母前面,所以A-z之间的字符都包含在内,包括几个非字母字符。

而用[1-z],就包含了数字、大小写字母。

因为这种灵活性,在使用时最好指定清晰明确的范围。

在shell命令使用中,需要用文件名作为参数的地方,都可以使用通配符。

在GUI的文件操作模式下,有的也支持在地址栏输入通配符,来选择或显示相应的文件。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值