ls 命令通配符(3)
使用过正则的人应该很熟悉通配符。如果非要解释的话,我找来一段:
通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件。 当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。
上次说到 ls 命令可以列出当前目录所有的文件,那我们可不可以不要将所有的文件都显示出来,而只是显示一部分符合我们期望的文件呢?显然是可以的,就像在正则里使用通配符一样,Linux命令里也可以用,用来匹配对应的文件。
ls通配符的使用
通配符 | 含义 |
* | 代表任意个数个字符 |
? | 代表任意一个字符,至少1个 |
[ ] | 表示可以匹配字符组中的任意一个 |
[abc] | 匹配a、b、c中的任意一个 |
[a-f] | 匹配从a到f范围内的任意一个字符 |
*
假设当前目录下有以下几个文件:
111.txt 121.txt 131.txt 1234.txt 212.txt
现在我想看到所有1开头的文件,就可以:
ls 1*
想看1结尾的就是:
ls *1.txt
注意.txt这个后缀要加上。
?
* 是多个字符,而 ? 只能是一个。 还是上面那几个文件,分别输入以下命令:
ls 12?.txt //121.txt
ls 12*.txt //123.txt //1234.txt
[ ]
最需要注意的是,一个 [ ] 代表的只是一个字符,只要在 [ ] 里的都是符合的。
ls [12][12]1.txt
这个命令表示文件名第一位可以是1也可以是2,同理第二位也是可1可2,第三位必须是1。
这篇也没啥可说的了,都是大家熟悉的东西~