列出并删除存档中的目录

时间:2010-04-23 15:32:37

标签: bash archive

我想知道如何列出档案文件中的内容并从中删除一些目录?

例如,我有一个存档文件data.tar

  1. 我想在不提取内容的情况下列出其内容。是否可以控制目录级别以供查看?我的意思不一定是每个文件,而只是到某个级别的路径。

  2. 我还想从中删除一些与"*/count1000"匹配的目录。

2 个答案:

答案 0 :(得分:3)

查看tar文件的内容,

tar tvf mytar.tar

提取文件,

tar xvf mytar.tar myfile.txt

删除文件

tar -f mytar.tar --delete */count1000

答案 1 :(得分:1)

您可以使用以下内容删除第一个路径组件:

cat myarchive.tar.gz | tar -tzf - | grep --only-matching -e "/.*"

您可以使用以下方式剥离第二个路径组件:

cat myarchive.tar.gz | tar -tzf - | grep --only-matching -e "/.*/.*"