eu tenho um diretório
~/root/
|-- bar
|-- eggs
|-- foo
|-- hello.txt
|-- script.sh
`-- spam
4 directories, 2 files
Emissão find . -type d
enquanto em ~/root/
rendimentos
.
./spam
./eggs
./bar
./foo
No entanto, a emissão de find . -type d | parallel "echo {}" ::: *
rendimentos
bar
eggs
foo
hello.txt
script.sh
spam
Por que os não-diretórios hello.txt
e script.sh
canalizados aqui?
De acordo com o manual , a
::: *
sintaxe usa a expansão do shell*
como uma lista de argumentos em vez de qualquer coisa destdin
. Assim, conforme escrito, seu comando ignora o resultadofind
e passa todos os arquivos no diretório atual como argumentos. Se você deixar o::: *
, ele deve funcionar como pretendido.