linux - 在 Linux 中运行 ls doc*.txt 和 ls doc?*.txt 和 ls doc*?.txt 有什么不同?

标签 linux

<分区>

当我运行以下每个命令时:

ls doc?*.txt
ls doc*?.txt

我得到的输出与我简单运行时得到的输出相同:

ls doc*.txt

它们之间有什么区别吗?

最佳答案

命令中的 glob:

ls doc?*.txt
ls doc*?.txt

...将与文件名 doc.txt 不匹配。

然而...

ls doc*.txt

...将。这是因为前两个 glob 中的 ? 表示 exactly one character* 表示 零个或多个字符 .

换句话说,doc.txt 之间至少需要有一个字符才能匹配前两个模式。

即使 doc.txt 之间没有字符,第三个模式也会匹配。

关于linux - 在 Linux 中运行 ls doc*.txt 和 ls doc?*.txt 和 ls doc*?.txt 有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29957519/

相关文章:

python - ImportError : No module named geoip2. 数据库

linux - 查找: `./folder':没有这样的文件或目录

linux - 单个 bash 行中的嵌套命令

linux - 我有一个 jailed 用户,无法 ping 通主机名(仅限 IP 地址)

linux - Activemq内存消耗高

编译1988年的程序

linux - Bash - for循环中的多个条件

c - flockfile() 一个在 Linux 上被 fclosed()ed 的 FILE* 是否安全?

linux - 如何在 tcp 套接字的 BLOCKING 模式下减轻痛苦?

linux - 我如何知道 Linux 进程正在等待什么?