小编Nic*_*lin的帖子

使用ls查找匹配特定模式的所有文件

我试图在一些文件夹和任何子文件夹中找到所有PDF文件,只是在终端中,而不是在脚本中.我对linux也很陌生,所以如果我错过任何明显的事情,或者对诊断我的特定问题至关重要,请道歉.

我正在使用bash 4.1.5(1)-release(i486-pc-linux-gnu),并且在google上做了一些关于glob和extglob表达式的讨论,看来我应该使用的语法是

$ ls **.pdf
Run Code Online (Sandbox Code Playgroud)

然而,这没有任何结果,因为没有文件匹配*.pdf当前文件夹中的模式./; 它似乎想读***:

ls: cannot access **.pdf: No such file or directory
Run Code Online (Sandbox Code Playgroud)

在其他地方有PDF,在1到5深的子文件夹中(特别是在每个子文件夹1深),其中一些我可以通过检查看到

$ ls */*.pdf
Run Code Online (Sandbox Code Playgroud)

因此,ls似乎工作正常.它的手册似乎不是很有帮助,因为我所能看到的可能是任何使用我们ls-R旗帜调用的东西,这在上述任何一种情况下都没有解决问题.

我尝试使用extglob模式(确保打开它们shopt).我可以看到我的深度-1文件有ls */*?(.)pdf,但我看不到任何与ls .*(/*)pdfls .*(/*).pdf,甚至那里有一个PDF文件子目录中.

我在其他地方(参考.gitignoregit存储库中的文件)中读到该**模式并不适用于所有人.

这可能会影响我,我如何解决它(理想情况下没有超级用户权限)?可能这个(或一些相关问题)也会影响extglob功能吗?

ls glob

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

glob ×1

ls ×1