gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 01:42:57 27 4
gpt4 key购买 nike

我试图在某个文件夹和任何子文件夹中找到所有 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似乎工作正常。它的手册似乎不是很有帮助,因为我所看到的可能对我们有任何用处,我们调用 ls-R标志,在上述任何一种情况下都不能解决问题。

我尝试使用 extglob 模式(确保使用 shopt 打开它们)。我可以用 ls */*?(.)pdf 查看我的深度 1 文件,但我看不到任何东西 ls .*(/*)pdfls .*(/*).pdf ,即使在有 PDF 的子目录中。

我在其他地方(引用 git 存储库中的 .gitignore 文件)读到 **模式并不适合所有人。

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

最佳答案

您可能需要考虑查找

find . -name '*.pdf' -exec ls -l {} \;

要么
find . -name '*.pdf' -ls

在哪里 。是您当前的工作目录。 glob 功能随 4.0+ bash 一起提供。换句话说,glob 扩展是不可移植的。

关于使用 ls 查找所有匹配特定模式的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9187566/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com