O GNU find tem uma diretiva -ls que você pode usar. Ele tem um formato de saída bastante próximo, mas não exatamente igual ao de ls -l .
A ação padrão de find, se nenhuma for dada, é -print , que simplesmente imprime o nome do arquivo e o caminho como encontrado. Se você adicionar (ou substituir -print por) -ls , obterá uma listagem mais detalhada.
Se você quiser algum formato específico por qualquer motivo, -printf é o que você deseja. Por exemplo, tente isto:
find . -printf "%M %n %8.8u %8.8g %8.8s %Ax %AX %p\n"
para replicar aproximadamente o formato de saída ls -l . (Isso usa uma formatação de data diferente; também é possível replicar o comportamento de ls; consulte a página find man para obter detalhes sobre os especificadores de formatação disponíveis e printf(3) para obter detalhes sobre o que os números fazem.)
Geralmente, você deve evitar usar -exec , se puder, e se precisar usar -exec, deseja tentar usar + em vez disso que {} para fornecer vários nomes de arquivos em uma única chamada. Caso contrário, o comando será executado uma vez por arquivo encontrado, correspondendo aos critérios, o que, com um grande número de arquivos, pode resultar em uma penalidade substancial no desempenho.
Observe também que, se você não precisa do comportamento de recursão, a solução mais simples pode ser apenas usar o ls em primeiro lugar: ls -ld $directory/*.vm