Linux - Shell - 通配符

Posted 轩辕拾銉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux - Shell - 通配符相关的知识,希望对你有一定的参考价值。

  1. 概述

    1. 通配符
  2. 背景

    1. 一直分不清 通配符 和 正则
    2. 通配符也是一种简单的 查找手段
      1. 在懒得用正则的时候, 是个好办法
  3. 准备

    1. os

      1. centos7
    2. 目录

      1. /etc
    3. 命令

      1. ls -d
        1. -d
          1. 如果过滤出目录, ls 不会对目录拆包
          2. 如果不跟 正则, 只返回 .

1. 通配符

  1. 概述

    1. 通配符
    2. wildcard
      1. 狂野的卡牌?
  2. 通配符

    1. 描述

      1. 一种字符
        1. 可以在搜索中, 代替其他任意字符
    2. 好处

      1. 提高了搜索的灵活性和效率
  3. 使用场景

    1. ls
    2. find
    3. 其他欢迎补充

2. * 通配符

  1. 概述

      • 通配符
  2. 作用

    1. 匹配 任意类型 的 [0, 正无穷] 个字符
      1. 当然 linux 的路径长度, 是有上限的
  3. 场景1: 匹配 特定后缀 的文件

    # . 在通配符里, 是 普通字符, 不要和 正则 弄混了
    # .conf
    > ls -d *.conf
    # .d
    > ls -d *.d
    
  4. 场景2: 匹配 特定前缀 的文件

    # sys
    > ls -d sys*
    

3. ? 通配符

  1. 概述

    1. ? 通配符
  2. 作用

    1. 匹配 任意类型 的 单个字符
  3. 场景: 查找后缀长度固定的内容

    # 后缀长度为 1
    > ls -d *.?
    

4. [] 通配符

  1. 概述

    1. [] 通配符
  2. 作用

    1. 匹配 [] 内的 单个字符
  3. 场景

    > ls -d [a-z]*
    > ls -d *[a-z]*
    > ls -d *[A-Z]*
    > ls -d *[0-9]*
    > ls -d *[a-Z]*
    > ls -d *[a-f]*
    > ls -d *[a-fxyz]*
    > ls -d *[a-zA-Z0-9]*
    

5. [!] 通配符

  1. 概述

    1. [!] 通配符
  2. 作用

    1. 反选 单个字符
  3. 场景

    # 不是 小写字母开头 的文件
    > ls -d [!a-z]
    

5. {}

  1. 概述

    1. {}
    2. 这个好像不算 通配符
      1. 但是很多通配符的地方, 也可以用
  2. 作用

    1. 在多个 str 中选择yige
  3. 场景

    # 查找 sysco 或者 sysct 开头的 目录 或 文件
    > ls -d sys{co,ct}*
    

6. 其他

  1. 其实还要这些东西, 但是我不确定它们是否属于 通配符, 也不确定怎么用
    1. [:alpha:]
    2. 其他

ps

  1. ref

    1. How to Use Wildcards
    2. Wildcards
    3. Linux篇:通配符的应用
    4. Linux中通配符
  2. 后续

    1. 可能就是把之前整理的 正则, 再 搬出来 了吧

以上是关于Linux - Shell - 通配符的主要内容,如果未能解决你的问题,请参考以下文章

linux shell通配符元字符转义符

Linux Shell之通配符转义字符元字符

linux之shell通配符

Linux - Shell - 通配符

Linux Shell编程

Linux centos7 shell 介绍 命令历史命令补全和别名通配符输入输出重定向