我有以下我想做的事情:
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=-
即,排除一大堆东西,只看六个子目录深度,然后一旦修剪完成,剩下的就“焦油”了。
这并不难。管道 (|) 之前的位 100% 工作。如果我排除了“焦油”,那么我就会得到我想要的(在屏幕上)。但是,一旦我包含了管道和焦油,它就会对所有内容进行焦油化,包括我刚刚在“查找”中排除的所有内容。
我尝试了许多不同的迭代:
-print0 | xargs -0 tar rvf somefile.tar
-print0 | xargs -0 tar rvf somefile.tar --null --files-from=-
-print0 | tar cvf somefile.tar --null -T -
那么我做错了什么?我以前做过这个;但现在它只是给了我白发。