20240319【Asif/2201/第1节】Wildcard Characters 【linux shell】 通配符教学
时间:2024年3月19日,第1节课
地点:信息技术中心9号机房
教师:Asif
班级:2201
课题名称:Fundamentals of Linux
课题:Wildcard Characters
听课人员:徐自远,顾雯雯,周邵锦
linux shell基本指令 8:20
查书,布置作业 8:45
我的思考:
- shell中通配符教学的目的,是为了针对性的查找目标。
因此在时间安排上可能在应该在把基础的shell命令介绍完之后再进行通配符的教学。
- 要与学生多交互与交流。可以多提问学生。
- 内容较为简单的情况下,可以尝试学生自主学习,老师帮忙解决问题的方式进行课堂教学。
- 是否有shell的教学网站,因为学生可以上网。所以通过教学网站的使用能提高学生学习效率。课程练习题应该打印到屏幕上,让学生都看到。由老师纯教学理论知识,学习效果欠佳。学生通过题目都引导,能够快速掌握所学知识。
例如:
<details>
练习题 1
你有一个目录,里面包含如下文件:
report1.txt
report2.txt
report3.log
report4.txt
summary.txt
使用一个命令和通配符,列出所有以 report
开头并且扩展名为 .txt
的文件。
练习题 2
在一个包含以下文件的目录中:
apples.txt
apple123.txt
applescript.txt
123apple.txt
使用通配符构造一个命令来匹配所有包含 apple
的文件,但不要匹配那些以数字开头的文件。
练习题 3
假设你有一个目录,包含了不同月份和年份的日志文件,如下所示:
log-January-2022.txt
log-February-2022.txt
log-March-2022.txt
log-January-2023.txt
log-February-2023.txt
log-March-2023.txt
使用通配符构造一个命令来匹配所有 2022 年的日志文件。
练习题 4
你有一个目录,包含了如下文件:
file1.txt
file2.txt
file3.txt
file1.backup
file2.backup
file3.backup
使用通配符构造一个命令来同时匹配所有 .txt
和 .backup
文件。
练习题 5
考虑一个包含如下文件的目录:
report10.txt
report20.txt
report30.txt
report40.txt
report50.txt
使用通配符构造一个命令来匹配文件名中包含 1 或 4 的所有文件。
答案提示
ls report*.txt
ls apple*.txt
ls log-*-2022.txt
ls *.txt *.backup
ls report[14]*.txt
尝试在实际的 Linux 环境中运行这些命令,以检查结果是否符合预期,并加深对通配符使用的理解。
参考
Linux shell 中的通配符是一种强大的特性,允许用户以灵活的方式指定一组文件或目录。这里是关于如何在Linux shell中使用通配符的基础教学。
1. 星号(*)
星号 *
是最常用的通配符,它代表任意数量的字符(包括零个字符)。
- 示例:
ls *.txt
会列出当前目录下所有以 .txt
结尾的文件。
2. 问号(?)
问号 ?
代表任意单个字符。
- 示例:
ls ?.txt
会列出当前目录下所有名称由单个字符加上 .txt
后缀组成的文件。
3. 方括号([])
方括号 []
可以匹配括号内的字符范围。
- 示例:
ls [a-c]*.txt
会列出当前目录下所有以 a
、b
或 c
开头的 .txt
文件。
4. 花括号({})
花括号 {}
允许匹配多个特定的字符串,这些字符串用逗号分隔。
- 示例:
ls *.{txt,pdf}
会列出当前目录下所有以 .txt
或 .pdf
结尾的文件。
5. 反斜杠(\)
反斜杠 \
用于转义特殊字符,包括通配符,使其被视为普通字符。
- 示例:
ls \*.txt
会尝试列出名为 *.txt
的文件,而不是所有的 .txt
文件。
练习和应用
- 查找特定文件: 使用
ls
和通配符来查找特定模式的文件名。
- 批量操作: 使用通配符来批量移动、删除或重命名文件。
- 组合使用: 结合使用多种通配符来实现复杂的文件匹配。
注意事项
- 通配符与文件名或其他字符串的匹配是在 shell 层面上进行的,而不是具体命令内部。
- 不同的 shell(如 bash、zsh)可能在通配符的处理上有细微差别。
- 在处理包含大量匹配文件的通配符时,要小心,以免执行非预期的命令。
通过掌握通配符的使用,您可以大大提高在Linux环境中处理文件和目录的效率。练习不同的通配符组合可以帮助您更好地理解它们的工作原理。
</details>