A expressão regular que você usou com find
não corresponde a todos os arquivos no intervalo acct.20111001
a acct.20111030
, porque você esqueceu o último dígito .
Se está tudo bem para você também coincidir com acct.20111000
(caso exista, o que duvido que seja a partir da data-look dos nomes), você pode usar
find /home/log/2011/10 -name "acct.201110[0-3][0-9]" -exec tar -cvjf {}.bz2 {} \;
Outra opção, especialmente quando você tem poucos arquivos para operar (menos de centenas), é não usar find
, mas sim um simples loop for
. Você pode usar a expressão de intervalo que resulta em uma lista de números preenchidos com zero:
for file in acct.201110{01..30}; do tar -cvjf $file.bz2 $file; done
Ainda outra opção é possível se acct.20111001
a acct.20111030
forem os únicos arquivos que começam com acct.201110
(o que, novamente, eu suspeito ser o caso) - então você pode apenas use acct.201110*
com qualquer um dos comandos acima mencionados.