bash - bash 中点的通配符是什么?

标签 bash wildcard

我有 0001.file1.email.data.spam.txt 和 0001.file1.email.data.spam_1.txt 等文件

现在我想删除所有以“_1.txt”结尾的文件,我尝试使用“rm -rf *spam_1.txt”,但找不到文件。也许是因为 * 不能被视为点。

最佳答案

点是一个与自身简单匹配的文字字符。

*通配符匹配任意字符序列,?通配符匹配任何单个字符,但通配符匹配将忽略以点开头的文件,除非您有 dotglob 已启用(默认情况下处于关闭状态)。

您可以轻松检查哪些文件与通配符表达式匹配,例如

printf '>>%s<<\n' *spam_1.txt

(>> ... << 装饰只是为了让您能够轻松查看任何前导或尾随空白,并不是绝对必要的。)

在没有nullglob的情况下,如果没有找到任何匹配项,上面将打印通配符本身。另请查看 failglob 如果通配符不匹配任何内容,这会导致打印错误并中止命令。

关于bash - bash 中点的通配符是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53079469/

相关文章:

python - 使用参数从 bash 调用 Python 脚本

string - 如何将字符串转换为 Bash 中的所有空格?

MySQL 选择使用通配符(但在字段中使用通配符)

python - 命名与通配符导入为何/如何影响参数?

linux - Bash 到批量转换

linux - Bash 脚本错误,应为整数表达式

regex - grepping .eml 文件时忽略 base64 编码的附件

Enum 类型的 Java 泛型

bash - 在 Bash 中,是否可以将包含通配符的字符串变量匹配到另一个字符串

表的 MySQL LIKE 通配符