![使用“-type d”测试时,为什么 find 管道位于非目录中?](https://linux22.com/image/145047/%E4%BD%BF%E7%94%A8%E2%80%9C-type%20d%E2%80%9D%E6%B5%8B%E8%AF%95%E6%97%B6%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%20find%20%E7%AE%A1%E9%81%93%E4%BD%8D%E4%BA%8E%E9%9D%9E%E7%9B%AE%E5%BD%95%E4%B8%AD%EF%BC%9F.png)
我有一个目录
~/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.txt
和script.sh
管道在这里?
答案1
根据手册,::: *
语法使用 shell 的扩展*
作为参数列表,而不是 中的任何内容stdin
。正如所写,您的命令忽略结果find
并将当前目录中的所有文件作为参数传递。如果您省略::: *
,它应该按预期工作。