我有一个目录
~/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
管道在这里?
根据手册,
::: *
语法使用 shell 的扩展*
作为参数列表,而不是任何 fromstdin
。如所写,您的命令忽略结果find
并将当前目录中的所有文件作为参数传递。如果您不使用::: *
,它应该按预期工作。