我有 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/