Bash 如何在ls命令中转义括号

Bash 如何在ls命令中转义括号,bash,ls,Bash,Ls,我没有成功使用带括号的ls文件进行筛选(在bash上) 请在此处尝试: $ ls "*).pdf" ls: cannot access '*).pdf': No such file or directory $ $ ls '*\).pdf' ls: cannot access '*\).pdf': No such file or directory $ ls-1 | grep“*).pdf“应该做这项工作ls,在尝试精确匹配后使用文件名。转义的字符太多;唯一需要转义的字符是): 但是除了*之外

我没有成功使用带括号的ls文件进行筛选(在bash上)

请在此处尝试:

$ ls "*).pdf"
ls: cannot access '*).pdf': No such file or directory
$
$ ls '*\).pdf'
ls: cannot access '*\).pdf': No such file or directory
$

ls-1 | grep“*).pdf“
应该做这项工作
ls
,在尝试精确匹配后使用文件名。

转义的字符太多;唯一需要转义的字符是

但是除了
*
之外的所有内容都可以转义:

ls *").pdf"

shell本身是在
ls
甚至运行之前扩展glob的东西
ls
只获取文件名的显式列表。引用
*
使
ls
尝试列出名为
*).pdf的单个文件,而不是当前目录中与模式匹配的所有文件。

这与ls以及您使用的shell无关。什么shell?猛击?Csh。。。你需要给你吃的贝壳贴上标签。标记
ls
没有用。
ls *\).pdf
ls *").pdf"