gpt4 book ai didi

linux - 在特定目录中查找文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:55:27 25 4
gpt4 key购买 nike

我正在使用当前的查找命令:

find . -name "313958000002101817.pdf"

我目前在一个类似于此的目录中:

/n01/data/adf/fp08_traffic/jobs/FB

在这个目录中,我有 ID,所以我的目录结构看起来类似于:

/n01/data/adf/fp08_traffic/jobs/FB/1234
/n01/data/adf/fp08_traffic/jobs/FB/1235
/n01/data/adf/fp08_traffic/jobs/FB/1236

我知道我要查找的 PDF 在此作业目录中:

/n01/data/adf/fp08_traffic/jobs/FB/"ID"/PDFs

有没有办法在字符串中间为作业目录抛出一个通配符?

最佳答案

如果每个作业目录的数量没有大到无法放在命令行中,那么这很简单:

find /n01/data/adf/fp08_traffic/jobs/FB/*/PDFs -name "313958000002101817.pdf" -print

我们在这里所做的是指示 shell 将作业目录列表传递给 find。不过,这在一定程度上是行不通的。假设您正在处理更大的集合...

find /n01/data/adf/fp08_traffic/jobs/FB -mindepth 2 -maxdepth 2 -type d -name PDFs \
-exec sh -c 'exec find "$@" -name "313958000002101817.pdf" -print' _ {} +

第一个 find 生成一个 PDFs 目录列表。 -exec sh -c '...' _ {} + 然后将这些目录名称传递到 shell 的参数列表中(为了提高效率,每个 shell 调用尽可能多),然后传递它们在每批新的 find 命令的适当位置。 (需要 shell,因为 -exec ... {} + 只允许在参数列表的末尾进行替换,而不是在任何先前的位置,而 find 需要列表谓词列表之前的目录)。

关于linux - 在特定目录中查找文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47911739/

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