仅 tar 列表文件

Eer*_*nen 19 tar

有趣的事实:如果您使用存档管理器并提取 .tar.gz 以便您取消选中“保持目录结构”,您将获得一个tarbomb

tar -ztf列出 tar 文件中的所有文件和目录。有没有办法在没有目录结构的情况下列出 tar 文件中的所有文件?

Jos*_* R. 20

我从手册页中看不到执行此操作的方法,但您始终可以过滤结果。以下假设您的文件名中没有换行符:

tar tzf your_archive | awk -F/ '{ if($NF != "") print $NF }'
Run Code Online (Sandbox Code Playgroud)

这个怎么运作

通过将字段分隔符设置为/,最后一个字段awk知道 ( $NF) 是文件名,如果它正在处理文件名,或者是空,如果它正在处理目录名(tar向目录名添加尾部斜杠)。所以,我们基本上告诉awk打印最后一个字段,如果它不为空。


小智 8

利用约瑟夫R.的建议可以使用正则表达式[^/]$grep通过寻找线路没有结尾的文件/

tar tzf archive.tar.gz | grep -e "[^/]$"