您可能经常想用一个命令对一组文件进行操作。通配符通常用于构筑一个文件名的扩展模式:一系列的字符和通配符可以扩展为一系列文件名。比如:模式 /etc/*
扩展为所有 /etc 目录下的文件。
*
这个通配符可以代表任何连续的字符,所以 /etc/*
将扩展为所有的以 /etc/ 开头的文件名的列表。
作为命令的一组参数,文件名列表显得最为有用。举个例子,/etc 目录含有一系列叫做 rc0.d、rc1.d 等子目录。平常要看这些子目录的内容,您要输入:
ls /etc/rc4.d /etc/rc5.d /etc/rc6.d /etc/rcS.d
这些够枯燥的吧。替代的方法是,您可以使用 ?
这个通配符:
/etc/rc?.d 扩展为以 rc 开头,后跟一个字符而且以 .d 结尾的一系列文件名。
有效的通配符包括:
[abc]
匹配 a 或 b 或 c。如果您在左方括号加一个 ^
,结果将是相反的;所以 ^abc
匹配所有非 a、非 b、非 c 的字符。您可使用一个范围,诸如 [a-j]
匹配 a 到 j 之间的所有单一字符。这些匹配是大小写敏感的,为了匹配任何字母,您必须使用 a-zA-Z
。
当您看了一些具体例子后,扩展名模式对您就变得相当简单了:
*
匹配一切。