%20em%20arquivos%20retornados%20pelo%20comando%20find.png)
Estou executando um comando find para me mostrar os arquivos de uma extensão específica, como:
find $directory -type f -name "*.vm"
no entanto, eu gostaria de poder ver também as permissões do arquivo (como ls -l shows).
Como isso pode ser feito?
Responder1
GNU find
tem uma -ls
diretiva 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 fornecida, é -print
simplesmente imprimir o nome do arquivo e o caminho 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 ls -l
formato de saída. (Isso usa uma formatação de data diferente; pode ser possível replicar o comportamento de ls lá também; consulte a find
página de manual 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ê querevitarusando -exec
se puder, e se precisar usar -exec, vocêquerertentar usar +
em vez de {}
fornecer vários nomes de arquivo em uma única invocação. Caso contrário, o comando será executado uma vez por arquivo encontrado que corresponda aos critérios, o que com um grande número de arquivos pode representar 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 usar ls em primeiro lugar:ls -ld $directory/*.vm
Responder2
Você pode especificar a -ls
opção para find
. Ou, se precisar de um formato específico, use -exec
:
find "$directory" -type f -name '*.vm' -exec ls -l {} \;