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