【Linux】通配符(*?[]{}!)

摘要

本文将介绍如何在 Linux 中使用通配符。通配符是 Linux Shell 提供的一个非常实用的功能,掌握通配符能在你在系统管理中实现事半功倍的效果。

用法

  • *:代表任意长度的字符串(包括 0 长度)
  • ?:代表任意单个字符
  • []
    • [c1-c2] 表示匹配 c1 到 c2 序列中任意一个单一字符。但前提是 c1-c2 是一个有序的字符序列,例如 [0-9][a-z] 这些都是合法的
    • [c1,c2,...,cn] 表示匹配括号之间字符列表中任意单一字符。(字符列表用逗号分隔,不能有空格
  • {}{str1,str2,...,strN} 表示匹配 str1,str2,...,strN 这 N 个字符串中的某一个字符串,其效果完全等同于 [c1,c2,...,cn]。(字符列表用逗号分隔,不能有空格
  • !:往往和 []{} 连用,表示将其内容取反。如 [!0-9] 表示匹配不是 0-9 之间的字符。

示例

  • 示例 1:删除当前工作目录下所有以 .txt 结尾的文件
$ ls
1.txt  2.txt  c.txt  result
$ rm *.txt
$ ls
result
  • 示例 2:删除当前工作目录下所有以 0-9 中的任意数字打头并以 .txt 结尾的文件
$ ls
1.txt  2.txt  c.txt  result
$ rm [0-9].txt
$ ls
c.txt  result
  • 示例 3:删除当前工作目录下所有以非 0-9 中的字符打头并以 .txt 结尾的文件
$ ls
1.txt  2.txt  c.txt  result
$ rm [!0-9].txt
$ ls
1.txt  2.txt  result

参考

中国大学 MOOC | Linux系统管理 | 主题03 | 小节 4 | 通配符

猜你喜欢

转载自blog.csdn.net/qq_42951560/article/details/125155315