在 Ubuntu 16.04 中,通配符无法按预期工作

在 Ubuntu 16.04 中,通配符无法按预期工作

我正在学习 Linux 基础知识,我发现了一些意外的行为

以下是脚本

ls /home/shiv/Documents
Dhoni.txt

现在,我想使用通配符

cd /home/shiv/Documents
ls *txt 
Dhoni.txt

但是,如果我也想搜索 .jpg 文件,则会收到错误

cd /home/shiv/Documents
ls *{txt, jpg} 
ls: cannot access '*{txt,': No such file or directory
ls: cannot access 'jpg}': No such file or directory

列出 txt 和 jpg 文件的正确命令是什么?

答案1

你可以做

ls *{txt,jpg}

空格用于分隔参数,因此 shell 将把*{txt,jpg}视为两个参数,并尝试分别匹配它们。{}将按字面意思处理,而不是扩展到可能的匹配范围。

相关内容