найти с помощью xargs и tar

У меня есть следующее, что я хочу сделать:
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=-
т. е. исключить много всего, посмотреть только на глубину 6 подкаталогов, а затем, как только обрезка будет завершена, смолить остальные.

Не трудно. Бит перед трубой (| )работает на 100%. Если я исключаю tar, то получаю то, что мне нужно после (на экране ). Но как только я включаю канал и tar, он тарирует все, включая все то, что я только что исключил из находки.

Я пробовал несколько разных итераций:
-печать0 | xargs -0 tar rvf somefile.tar
-печать0 | xargs -0 tar rvf somefile.tar --null --файлы -from=-
-печать0 | tar cvf somefile.tar --null -T-

Так что я делаю неправильно? Я делал это раньше; но теперь это просто дает мне седые волосы.

11
задан zinkeldonk 18 July 2012 в 12:14
поделиться