【发布时间】:2012-02-29 13:09:54
【问题描述】:
我试图在终端中找到某个文件夹和任何子文件夹中的所有 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 深的子文件夹中(特别是在 every 1 深的子文件夹中),其中一些我可以通过检查来查看
$ ls */*.pdf
因此,ls 似乎工作正常。它的手册似乎不是很有帮助,因为我所看到的可能对我们使用 -R 标志调用 ls 有任何用处,这在上述任何情况下都不能解决问题。
我尝试使用 extglob 模式(确保使用 shopt 打开它们)。我可以用ls */*?(.)pdf 看到我的depth-1 文件,但是用ls .*(/*)pdf 或ls .*(/*).pdf 看不到任何东西,即使在有PDF 的子目录中也是如此。
我在别处读到(参考 git 存储库中的 .gitignore 文件)** 模式不适用于所有人。
这会影响我吗?我该如何补救(最好没有超级用户权限)?这个(或一些相关问题)是否也会影响 extglob 功能?
【问题讨论】: