Bash 列出并删除存档中的目录

Bash 列出并删除存档中的目录,bash,archive,Bash,Archive,我想知道如何在归档文件中列出内容并从中删除一些目录 例如,我有一个归档文件data.tar 我想列出它的内容而不提取它。是否可以控制查看目录的级别?我的意思是,不一定是所有的文件,而是路径的某个层次 我还想从中删除一些与*/count1000匹配的目录 要查看tar文件的内容 tar tvf mytar.tar 要提取文件 tar xvf mytar.tar myfile.txt 删除文件 tar -f mytar.tar --delete */count1000 可以使用以下工具剥离第一

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

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


我想列出它的内容而不提取它。是否可以控制查看目录的级别?我的意思是,不一定是所有的文件,而是路径的某个层次

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


要查看tar文件的内容

tar tvf mytar.tar
要提取文件

tar xvf mytar.tar myfile.txt
删除文件

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

可以使用以下工具剥离第一个路径组件:

cat myarchive.tar.gz | tar -tzf - | grep --only-matching -e "/.*"
cat myarchive.tar.gz | tar -tzf - | grep --only-matching -e "/.*/.*"
可以使用以下工具剥离第二路径组件:

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

等等。

如何从中删除一些与*/count1000匹配的目录。是否可以控制目录的级别以供查看?我的意思是,不一定是所有的文件,而是路径的某个层次。蒂扬克斯