将树与 tar.gz 文件一起使用而不提取内容

将树与 tar.gz 文件一起使用而不提取内容

我想知道是否可以使用树输出 tar.gz 文件的内容,而不必将文件的内容提取到临时目录,然后使用该目录的树。

我知道我们可以看到文件的内容而无需使用

tar -tf file.tar.gz

我只是尝试将其传递给tree命令

tar -tf file.tar.gz | tree

但这只是输出当前目录的树,而不是文件的内容。

几个问题,

  1. 这可能吗?
  2. 如果可以的话,有什么限制吗?深度、文件数量等?
  3. 是否有其他方法可以查看内容的树形输出?

答案1

自定义树脚本树化.py由 Hakril 创建将有助于漂亮地打印 tgz 的内容而无需解压

[root@bastion ~]# wget https://bitbucket.org/Hakril/treeify/raw/8e732368f64d30ffc4033cbc890164fdf296d9f8/treeify.py
[root@bastion ~]# tar -tvf  neo4j-enterprise.tar.gz | python treeify.py 
.
├─ drwxrwxrwx root
│  ├─ root         0 2019-05-09 05:05 neo4j-enterprise
│  │  └─ local-package
│  │    └─ 
│  └─ root         0 2019-05-15 02:01 neo4j-enterprise
│    └─ 
└─ -rwxr-xr-x root
  ├─ root         0 2019-05-09 05:05 neo4j-enterprise
  │  ├─ local-package
  │  │  └─ .sentinel
  │  └─ .sentinel
  ├─ root     10156 2019-05-09 05:05 neo4j-enterprise
  │  └─ docker-entrypoint.sh
  └─ root      1560 2019-05-14 21:36 neo4j-enterprise
    └─ Dockerfile
[root@bastion ~]# 


参考:https://superuser.com/questions/1086501/list-contents-of-tarball-in-tree-format

相关内容