我有以下想做的事情:
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=-
即,排除大量内容,只查看六个子目录深度,然后一旦修剪完成,就将其余部分“tar”起来。
这并不难。管道符 (|) 之前的位 100% 有效。如果我排除“tar”,那么我就会得到我想要的东西(到屏幕上)。但是,一旦我添加了管道和焦油,它就会对所有内容进行焦油处理,包括我刚刚在“查找”中排除的所有内容。
我尝试了许多不同的迭代:
-print0 | xargs -0 tar rvf somefile.tar
-print0 | xargs -0 tar rvf somefile.tar --null --files-from=-
-print0 | tar cvf somefile.tar --null -T -
那么我做错了什么?我以前做过这个;但现在它只是让我白发而已。
的组合-print
查找标志,然后--files-from
“tar”命令对我有用。就我而言,我需要压缩 5000 多个日志文件,但仅使用“xargs”只在结果文件中提供了 500 个文件。
find . -name "*.pdf" -print | tar -czf pdfs.tar.gz --files-from -
当你只想要“--files-from -”时,你有“--files-from=-”,然后我认为你需要一个-
在...前面cvf
,如下所示。
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.gz --files-from -
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)