Se você olhar a página find
man, encontrará uma descrição da opção -printf
:
-printf format
True; print format on the standard output, interpreting '\' escapes
and '%' directives...
Se você olhar mais abaixo na man page, você encontrará a documentação para %G
:
%G File's numeric group ID.
Portanto, isso localiza todos os arquivos contidos em um diretório chamado username
(em seu exemplo) e imprime o ID numérico do grupo que os possui. Isso é canalizado para sort
, o que os classificará lexicalmente. Os resultados do sort
get são canalizados para uniq
, o que removerá entradas duplicadas.
Isso produz uma lista de todos os IDs de grupo exclusivos que possuem arquivos em uma determinada árvore de diretórios.
Conforme escrito, isso não fará exatamente isso, porque não há delimitadores. Se você tiver arquivos pertencentes ao grupo 200
e 100
, a saída será semelhante a:
100200
... o que significa que sort
só verá uma única linha e não fará nada.
Poderia adicionar uma nova linha à string de formato para corrigir isso:
find username -printf '%G\n' | ...