Linux通配符

本文详细介绍了Linux环境中通配符的使用方法及其与正则表达式的区别。通过具体的实例展示了如何利用通配符进行文件名匹配,包括星号(*)、问号(?)等特殊字符的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通配符与正则表达式的元字符代表的意义不一样。
通配符一般用于命令行bash环境,而linux正则表达式用于grep,sed,awk场景。

通配符意义
*代表0个到无穷多个任意字符
?代表一定有一个任意字符
;连续命令执行分隔符
#配置文件注释
|管道,分隔两个管道命令的界定
~用户家目录
-上一次的目录
$变量前需要加的符号
/路径分隔符号
>输出重定向,覆盖
>>追加输出重定向,追加
<输入重定向
<<追加输入重定向
单引号,不具有变量置换功能,输出所见即所得
双引号,具有变量置换功能,解析变量后输出
`反引号,两个“`”中间为可以先执行的命令
,等价于$()
{}中间为命令区块组合或内容序列
!逻辑运算中的非
&&当前一个指令执行成功时,执行后一个指令
||当前一个指令执行失败时,执行后一个指令
..上级目录
.当前目录

实例

这里写图片描述

*的使用:

[root@ianLinux ~]# ls *.log
1.log  2.log  3.log  install.log

?的使用:

[root@ianLinux ~]# ls ?.log
1.log  2.log  3.log
[root@ianLinux ~]# ls ???????.log
install.log

{}的使用:

[root@ianLinux ~]# echo {1..3}
1 2 3

反引号,单引号,双引号

[root@ianLinux ~]# echo `date`
20160905日 星期一 20:33:29 CST
[root@ianLinux ~]# echo 'date'
date
[root@ianLinux ~]# echo "date"
date
[root@ianLinux ~]# echo "`date`"
20160905日 星期一 20:34:35 CST

&&,||

[root@ianLinux ~]# ech && echo 1
-bash: ech: command not found

[root@ianLinux ~]# ech || echo 1
-bash: ech: command not found
1

[root@ianLinux ~]# echo 2&&echo 1
2
1
[root@ianLinux ~]# echo 2||echo 1
2
Linux系统中,通配符(wildcard)是一种用于匹配文件名、路径或命令参数的特殊字符。它们广泛应用于命令行操作中,特别是在文件管理和搜索任务中。以下是一些常见的通配符及其使用示例。 ### 通配符类型及用法 #### 1. `*`(星号) `*` 用于匹配任意数量的字符(包括零个字符)。它是最常用的通配符之一。 - 示例:查找所有以 `.txt` 结尾的文件。 ```bash ls *.txt ``` 此命令将列出当前目录下所有扩展名为 `.txt` 的文件[^1]。 #### 2. `?`(问号) `?` 用于匹配单个任意字符。 - 示例:查找所有以 `file` 开头,后跟一个字符并以 `.log` 结尾的文件。 ```bash ls file?.log ``` 这将匹配 `file1.log`、`fileA.log` 等,但不会匹配 `file10.log` 或 `file.log`。 #### 3. `[ ]`(字符集合) `[ ]` 用于匹配括号内任意一个字符。 - 示例:查找所有以 `data` 开头,后跟 `1`、`2` 或 `3` 的文件。 ```bash ls data[123].csv ``` 这将匹配 `data1.csv`、`data2.csv` 和 `data3.csv`。 #### 4. `[ - ]`(范围匹配) 可以使用 `-` 在 `[ ]` 中指定字符范围。 - 示例:查找所有以 `log` 开头,后跟数字 `0` 到 `9` 的文件。 ```bash ls log[0-9].txt ``` 这将匹配 `log0.txt` 到 `log9.txt`。 #### 5. `[^ ]` 或 `[! ]`(否定匹配) `[^ ]` 或 `[! ]` 用于匹配不在括号内的字符。 - 示例:查找所有以 `abc` 开头,但不以 `d` 或 `e` 结尾的文件。 ```bash ls abc[!de].log ``` ### 通配符在命令中的应用 #### 使用 `whatis` 命令进行通配符搜索 `whatis` 命令可以使用 `-w` 或 `--wildcard` 选项进行通配符搜索,帮助查找命令或函数信息。 - 示例:查找所有以 `ab` 开头的命令或函数。 ```bash whatis -w 'ab*' ``` 输出可能包括: ``` abort (3) - cause abnormal process termination abs (3) - compute the absolute value of an integer ``` #### 使用 `man` 命令查看特定章节的手册 `man` 命令支持通过章节号查找特定的手册页,这也可以与通配符结合使用。 - 示例:查看第 3 章节中与 `abs` 相关的手册页。 ```bash man 3 abs ``` 此命令将显示 `abs` 函数的说明,属于程序库调用章节[^3]。 ### 通配符的注意事项 - 通配符主要用于匹配文件名和路径,但在某些命令中(如 `grep`)也可以用于文本内容匹配。 - 使用通配符时,需注意当前目录下的文件结构,以避免意外匹配到不期望的文件。 - 如果希望禁用通配符扩展,可以使用单引号 `' '` 或双引号 `" "` 将字符串包裹起来。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值