Supondo que os nomes dos arquivos não contenham caracteres de nova linha, POSIXly (exceto por pbzip2 obviamente), que pega a lista de arquivos para arquivar em stdin por padrão (e também grava o arquivo em stdout por padrão)
find /tmp -mtime +31 -type f -name "arch*" | pax -w | pbzip2 > file.tar.bz2
Ou para usar o Solaris tar , para que você possa manter suas opções P / E :
find /tmp -mtime +31 -type f -name "arch*" |
tar cvPEf - -I /dev/stdin | pbzip2 > file.tar.bz2
-I /dev/stdin para obter a lista de arquivos de stdin, f - para gerar o arquivo no stdout, que é compactado em pbzip2 , como pax .