Use o recurso -T
do tar para dizer a ele para ler a lista de arquivos de outro arquivo (o tar trata cada linha como um arquivo separado).
Em seguida, você pode usar a notação <()
para que seu shell gere um pseudo-arquivo a partir da saída de um comando:
tar cf ctlfiles.tar -T <(find /home/db -name "*.ctl")
Se o seu shell não suporta a notação <()
, você pode usar um arquivo temporário:
find /home/db -name "*.ctl" > ctlfile-list
tar cf ctlfiles.tar -T ctlfile-list
rm ctlfile-list