列出和删除存档中的目录

Posted

技术标签:

【中文标题】列出和删除存档中的目录【英文标题】:List and Remove directories in an archive 【发布时间】:2010-04-23 15:32:36 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

查看 tar 文件的内容,

tar tvf mytar.tar

提取文件,

tar xvf mytar.tar myfile.txt

删除文件

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

【讨论】:

如何删除一些匹配“*/count1000”的目录。 是否可以控制查看目录的级别?我的意思不一定是每个文件,而只是到路径的某个级别。谢恩克斯【参考方案2】:

您可以使用以下命令剥离第一个路径组件:

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

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

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

等等

【讨论】:

以上是关于列出和删除存档中的目录的主要内容,如果未能解决你的问题,请参考以下文章

Linux解压命令(tar)

在 PHP 中打开并列出 zip 存档中的文件/文件夹

如何在不解压缩的情况下列出 zip 存档中的文件?

php WooCommerce |列出存档页面中的所有产品标签

php WooCommerce |列出存档页面中的所有产品标签

类以递归方式列出/删除目录中的文件