如何使用 find 命令按字母顺序搜索文件?

如何使用 find 命令按字母顺序搜索文件?

我想知道是否有办法运行该find命令并使其按字母顺序(或反向)遍历目录(递归)?我有一堆目录,其名称代表某种顺序,通常我需要根据目录名称找到最早的(或最后一个)。

关于如何对返回的结果进行排序,存在一些问题和答案find(见下文)。但是,我想知道是否有办法find按字母顺序运行搜索,因为这比遍历整个内容然后进行排序要高效得多。

n理想情况下,我可以指定在找到匹配项后停止的命令,但这是次要的,因为我也可以手动停止该命令。

在 OS X 中,如何按修改日期排序通过命令行‘查找’找到的文件? https://unix.stackexchange.com/questions/34325/sorting-the-output-of-find

答案1

find的目录列表顺序由文件系统中存储的条目的顺序给出。

您可以考虑编写一个 bash 脚本,进入每个目录并列出所需的文件。

答案2

您可以尝试:

find -type d -maxdepth 1 | sort -h | xargs find

find -type d -maxdepth 1列出目录,无需递归。我们将输出导入sort -h,以人性化的方式对结果进行排序。排序后的目录列表被发送到 ,xargs后者将它们用作最后​​的 的命令行参数find,后者完成大部分工作。

我知道您想避免排序,但据我所知,find 将按照文件系统的顺序遍历文件系统。

希望这可以帮助。

相关内容