A confusão é que caracteres curinga como *
e *.*
são avaliados pelo shell quando você digita o comando.
Portanto, datafind/run*.*
é avaliado pelo shell e deve ser substituído pelos nomes de arquivos correspondentes, mas não encontra nenhum arquivo correspondente. Portanto, datafind/run*.*
é dado ao comando xargs
e depois passa para o comando ls
.
O comando ls
não entende os caracteres curinga, portanto, apenas recebe sua entrada e tenta localizar um arquivo com esse nome. Não há arquivo com o nome run*.*
, então você recebe um erro Nenhum arquivo ou diretório .