find . * -exec ll {} \;
Passa .
e a lista de arquivos não ocultos no diretório atual (expandida de *
pelo shell), incluindo o subdiretório test
(e se algum desses arquivos tiver sido iniciado com -
ou se houvesse um arquivo chamado !
ou (
, )
... isso faria com que find
reportasse um erro de sintaxe).
Você está dizendo ao find
para procurar arquivos recursivamente em .
, mas também em test
. Portanto, find
encontrará test
duas vezes e também test/file123
duas vezes.
ll
que eu suponho que é um script que faz ls -l
é uma ferramenta para listar detalhes de arquivos ou arquivos do tipo diretório, os detalhes de todos os arquivos nesse diretório (a menos que você passe a opção -d
).
Portanto, ll
será chamado com ./test
e test
como argumentos, em que casos se listará os detalhes dos arquivos em seu conteúdo (incluindo test/file
).
E será chamado com ./test/file123
e test/file123
.
Aqui, você deseja:
find . -exec ls -ld {} +
(usar +
significa que mais de um arquivo será passado como argumentos para ls
, o que é mais eficiente e também permite ls
classificar essa lista de arquivos).
Seu find
pode até suportar um predicado -ls
que se comporta como uma lista de bits ls -lsid
:
find . -ls