pwn.college记录

linux-luminarium

globbing(通配符)

*

shell 会将遇到的任何 * 作为”通配符”,并尝试匹配文件来替换该参数,比如

1
2
3
4
hacker@dojo:~$ ls 
file_a file_b file_c
hacker@dojo:~$ echo Look: file_* # 这里会匹配任何以 file_开头的文件,这里有多个参数
Look: file_a file_b file_c

当只有一个文件时也是可以匹配的

当 0 个文件时 shell 不会改变 * 这个参数

不能匹配 / 或前导.

举个碰到过的例子,比如不允许 /bin/sh 那么我们就可以 /bin/*h ,它会自动匹配到 /bin/sh

1
2
3
hacker@dojo:~$ cat /*fl*
pwn.college{YEAH}
hacker@dojo:~$

此处发生,shell 在 \ 中查找以任何内容开头(包含无内容)的所有文件,并且有 fl ,并且以任何内容结尾,这里就包括了 flag,也就是 cat /flag

?

类似 * ,但是只匹配一个字符,比如

1
2
3
4
5
6
hacker@dojo:~$ ls
file_a file_b file_cc
hacker@dojo:~$ echo Look: file_? # 匹配一个字符
Look: file_a file_b
hacker@dojo:~$ echo Look: file_?? # 匹配两个
Look: file_cc

[]

匹配括号内指定的某些字符串子集,比如 [abc] 就是匹配字符a b c

例子

1
2
3
4
5
6
7
hacker@dojo:~$ touch file_a
hacker@dojo:~$ touch file_b
hacker@dojo:~$ touch file_c
hacker@dojo:~$ ls
file_a file_b file_c
hacker@dojo:~$ echo Look: file_[ab] # 匹配字符a b
Look: file_a file_b

[]匹配路径

[] 同样可以用来匹配路径,比如 /challenge/files/file_[abc] 就会匹配 /challenge/files/file_a /challenge/files/file_b /challenge/files/file_c


pwn.college记录
http://yyyffff.github.io/2025/09/22/pwn.college记录/
作者
yyyffff
发布于
2025年9月22日
许可协议