Duas opções possíveis, em que eliminei a maior parte da sua declaração find
para que ela se concentre nas diferentes maneiras de combiná-las:
-
combine as instruções
find
em um "find-shell":find ... -exec sh -c 'printf "%s - %s - %s\n" "$1" "$(stat -c %U "$1")" "$(du -sh "$1")"' find-sh {} \;
Isso passa os arquivos um de cada vez para o comando shell, que combina os comandos stat
e du
em uma instrução printf
formatada. Esta segunda opção passa vários arquivos de uma vez para o comando stat
.
-
combine a funcionalidade com
stat
:find ... -exec stat -c '%n %U %s' {} +
A opção stat
imprime o tamanho em bytes, o que é um pouco diferente do formato du -h
.
Uma terceira opção existe, se você tiver o GNU find disponível, para sua extensão -printf
:
find ... -printf '%p %u %s\n'