在前面的博文中,介绍了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的文件操作模式下,有的也支持在地址栏输入通配符,来选择或显示相应的文件。
这篇博文介绍了Linux shell命令中的通配符,这是一种强大的文件选择工具。通配符包括*(匹配任意字符)、?(匹配单个字符)、[字符集](匹配字符集中任一字符)和[!字符集](匹配不在字符集内的字符)。通过这些通配符的组合,用户能够灵活地对文件和文件夹进行操作,实现图形界面无法做到的功能。例如,*匹配所有文件,g*匹配以g开头的文件,b*.txt匹配以b开头且以.txt结尾的文件等。通配符在shell命令中广泛应用,使得文件操作更加高效。
1081

被折叠的 条评论
为什么被折叠?



