使用“-type d”测试时,为什么 find 管道位于非目录中?

使用“-type d”测试时,为什么 find 管道位于非目录中?

我有一个目录

~/root/
|-- bar
|-- eggs
|-- foo
|-- hello.txt
|-- script.sh
`-- spam

4 directories, 2 files

在收益率find . -type d期间发行~/root/

.
./spam
./eggs
./bar
./foo

然而,发行find . -type d | parallel "echo {}" ::: *收益率

bar
eggs
foo
hello.txt
script.sh
spam

为什么非目录hello.txtscript.sh管道在这里?

答案1

根据手册::: *语法使用 shell 的扩展*作为参数列表,而不是 中的任何内容stdin。正如所写,您的命令忽略结果find并将当前目录中的所有文件作为参数传递。如果您省略::: *,它应该按预期工作。

相关内容