答案1
该tar
命令没有提供执行此操作的方法,但您可以使用以下命令过滤其输出grep
:
tar tfz file.tar.gz | grep -v '/'
或者,添加一个级别
tar tfz file.tar.gz | grep -v '/.*/'
或者,添加另一层级的文件:
tar tfz file.tar.gz | grep -v '/.*/.*/'
答案2
grep
,egrep
对我不起作用。
tar -tf <file.tar> | cut -f1-<whatever...> -d\ | uniq
无需-v
选项 f 或 即可工作tar
,其中<file.tar>
显而易见,但<whatever...>
取决于存档目录路径的长度,例如/home/luser1/his_forgotten_stuff
、/home/luser2/other_desperate_deadline
等。
--no-recurse
我认为,和的组合--exclude=
会做得更好,但这超出了我所能处理的范围glob()
,我怀疑它的行为依赖于发行版。:/ :( 。