管道找到找

Har*_*ith 11 bash pipe

我想将查找结果传递给新查找.我有的是:

find . -iname "2010-06*" -maxdepth 1 -type d | xargs -0 find '{}' -iname "*.jpg"
Run Code Online (Sandbox Code Playgroud)

预期结果:第二个查找接收从2010-06开始的文件夹列表,第二个查找返回这些文件夹中包含的jpg列表.

实际结果:"查找:./2010-06纽约\n:未知选项"

哦,真的.我有一种感觉它涉及第二个发现作为输入接收的输出格式,但我唯一的想法是后缀-print0首先找到,没有任何改变.

有任何想法吗?

Chr*_*rle 11

你需要2件事.-print0,更重要的是-I{}在xargs上,否则{}什么都不做.

find . -iname "2010-06*" -maxdepth 1 -type d -print0 | xargs -0 -I{} find '{}' -iname '*.jpg'
Run Code Online (Sandbox Code Playgroud)


use*_*own 6

无用的xargs.

find 2010-06* -iname "*.jpg"
Run Code Online (Sandbox Code Playgroud)

至少Gnu-find接受多个搜索路径.-maxdepth和type -d是隐式假设的.