Tengo el siguiente que quiero hacer:
find . -maxdepth 6 (-name *.tar.gz -o -name bediskmodel -o -name src -o -name ciao -o -name heasoft -o -name firefly -o -name starlink -o -name Chandra) -prune -o -print| tar cvf somefile.tar --files-from=-
es decir, excluyen a una gran cantidad de cosas, solo se ve a 6 subdirectorios profundidad, y luego una vez se realiza la poda, el alquitrán el resto.encontrar con xargs y alquitrán
No es difícil. El bit antes de la tubería (|) funciona al 100%. Si excluyo el tar, entonces obtengo lo que busco (a la pantalla). Pero una vez que incluyo la tubería y el alquitrán, lo ataca todo, incluso todo lo que acabo de excluir en el hallazgo.
He intentado una serie de iteraciones diferentes:
-print0 | xargs -0 tar rvf somefile.tar
-print0 | xargs -0 tar rvf somefile.tar --null --files-from = -
-print0 | tar cvf somefile.tar --null -T -
Entonces, ¿qué estoy haciendo mal? He hecho esto antes; pero ahora solo me está dando cabellos grises.
Creo que necesita comillas alrededor de la '* .tar.gz' Para evitar que conseguir expandido en' bash' antes de pasar a 'find' – drevicko