'Tar' es el resultado de un 'hallazgo', preservando la estructura del directory

Quiero atacar todos los files * .txt que obtengo como resultado de un command de búsqueda , que existen en un directory que tiene una estructura de tree como esta:

  • Nombre del directory
    • dir1
      • file1.pdf
      • file1.txt
    • dir2
      • file2.pdf
      • file2.txt
    • dir3
      • file3.pdf
      • file3.txt

(los nombres de file son solo ejemplos).

Pero quiero preservar la estructura del directory .

¿Qué command me puede dar un file tar.gz con este contenido?

  • dir1
    • file1.txt
  • dir2
    • file2.txt
  • dir3
    • file3.txt

Puede usar xargs para alimentar el resultado de un command como arguments a otro:

 find . -iname '*.txt' -print0 | xargs -0 tar zcvf the_tarball.tar.gz 

Tenga en count que el -print0 de find y -0 de xargs funcionan conjuntamente para delimitar los nombres de los files correctamente (de modo que los nombres con espacios y tales no son un problema).