Os tubos funcionam enviando a saída de um programa para a entrada de outro programa. Isso significa que o programa que recebe a saída do outro deve ser capaz de ler STDIN ( fluxos padrão ).
Nesse caso, grep é capaz de ler a saída de ll porque foi projetada dessa maneira. du espera um argumento de linha de comando apontando para o diretório em que ele deve ser executado (se um diretório não for fornecido, ele será padronizado para o diretório de trabalho atual ./ ).
Quanto a ver os tamanhos dos arquivos .pdf , se todos os arquivos estiverem em um diretório, você poderá executar du -h -d1 /path/to/pdf/dir ou locate *.pdf | xargs | du -h . Se eles estiverem em diretórios diferentes, você vai querer usar -exec e find juntos (outro usuário provavelmente lhe dará uma mão com isso, não tenho certeza de como fazê-lo).