使用ls来查找与某种模式匹配的所有文件

前端之家收集整理的这篇文章主要介绍了使用ls来查找与某种模式匹配的所有文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图找到所有PDF文件在一些文件夹和任何子文件夹,只是在终端,而不是在一个脚本.我也是 linux的新手,所以道歉,如果我错过了任何明显的事情,或者对于诊断我的特定问题也许至关重要.

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

$ls **.pdf

因为没有任何文件匹配当前文件夹中的模式* .pdf ./;它似乎要读取**为*:

ls: cannot access **.pdf: No such file or directory

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

$ls */*.pdf

因此,ls似乎正常工作.它的手册看起来不是很有帮助,因为我可以看到这可能是使用我们使用-R标志来调用ls的,这在上述任何情况下都不能解决问题.

我尝试使用extglob模式(确保使用shopt打开它们).我可以用ls * / *?(.)pdf看到我的深度1文件,但我看不到有ls.*(/ *)pdf或ls.*(/ *).pdf的内容有PDF的子目录

我已经阅读别的地方(在git仓库中引用.gitignore文件),**模式对所有人都不起作用.

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

解决方法

你可能想考虑发现
find . -name '*.pdf' -exec ls -l {} \;

要么

find . -name '*.pdf' -ls

在哪里是您当前的工作目录. glob功能带有4.0 bash. glob扩展名是不可移植的,换句话说.

猜你在找的Linux相关文章