685 字
3 分钟
Linux 基础学习笔记:通配符与输出重定向
1. 常见的通配符与正则匹配
在 Linux 系统中,熟练使用通配符可以极大地提高批量处理文件的效率:
TIP通配符基础:
*:匹配 0 到任意多个字符。?:匹配单个字符。[abc]:匹配括号内的任意一个字符(如 a、b 或 c)。[^abc]或[!abc]:匹配除了括号内字符以外的任意单个字符。{a,b,c}:精确匹配集合中的项(常用于touch file{a,b,c}批量创建)。{a..c}或{1..3}:匹配连续的字母或数字范围。
POSIX 字符类 (Character Classes)
除了普通通配符,Linux 还支持一些特殊的字符集匹配:
[[:alpha:]] # 匹配单个字母(包含大小写)[[:upper:]] # 匹配单个大写字母[[:lower:]] # 匹配单个小写字母[[:digit:]] # 匹配单个数字[[:punct:]] # 匹配单个符号[[:space:]] # 匹配单个空格[[:alnum:]] # 匹配单个数字或字母2. 输入输出与重定向原理 (I/O Redirection)
Linux 终端中的命令执行涉及“文件描述符(File Descriptor)”,它们分别是 0、1 和 2:
0代表标准输入 (stdin)1代表标准正确输出 (stdout)2代表标准错误输出 (stderr)
IMPORTANT命令后的
>符号默认等同于1>,只会重定向正确的执行结果。
覆盖重定向 (>)
会清空并覆盖目标文件的所有内容:
# 1. 重定向正确输出(屏幕上只提示“权限不够”等错误,正确结果写入 lee)find /etc/ -name passwd > lee
# 2. 重定向错误输出(屏幕显示正确路径,错误信息写入 lee.err)find /etc/ -name passwd 2> lee.err
# 3. 重定向所有输出(正确与错误结果统统写入 lee.all,屏幕无回显)find /etc/ -name passwd &> lee.all追加重定向 (>>)
如果不想覆盖原文件内容,可以使用追加重定向,内容会添加在文件最末尾:
NOTE
>>:追加正确输出2>>:追加错误输出&>>:追加所有输出
数据黑洞 (/dev/null)
如果你不希望看到某些报错信息,可以将其重定向到“黑洞”设备中直接丢弃:
# 执行命令时抛弃错误输出到系统无限空设备中find /etc/ -name passwd 2> /dev/null3. 综合实战练习
结合通配符和目录操作的经典练习记录:
# 1. 批量创建生产部文件mkdir -p /tmp/SHENGCHANtouch /tmp/SHENGCHAN/shengchan_{d,n}_tream{1..6}
# 2. 批量创建季度计划文件mkdir -p /tmp/SEASONtouch /tmp/SEASON/season{1..4}
# 3. 备份生产部文件(按 d 和 n 分类备份)mkdir -p /tmp/shengchan_d /tmp/shengchan_ncp /tmp/SHENGCHAN/*d* /tmp/shengchan_d/cp /tmp/SHENGCHAN/*n* /tmp/shengchan_n/
# 4. 模拟 U 盘备份,移动计划文件mkdir -p /tmp/usbmv /tmp/SEASON/* /tmp/usb/
# 5. 备份 /etc 目录下所有以 .conf 结尾且名字中含有数字的文件mkdir -p /tmp/confbackcp /etc/*[0-9]*.conf /tmp/confback/ Linux 基础学习笔记:通配符与输出重定向
https://bbcslook.top/posts/linuxlernen/wildcardsredirection/ 评论区
CC