我有一个目录
~/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
并将当前目录中的所有文件作为参数传递。如果您省略::: *
,它应该按预期工作。