gpt4 book ai didi

bash - 如何提取多格式的多层嵌套压缩文件

转载 作者:行者123 更新时间:2023-12-04 18:45:20 27 4
gpt4 key购买 nike

我有一些多层组织的压缩文件,它们以不同的方法压缩。示例结构如下所示(为简单起见,省略了非压缩数据文件)。

A.zip
|---B.zip
| |-----C.zip
|---C.rar
|---D.tar.gz

如何将所有文件提取到新文件夹中并保持此结构不变?我已经搜索并得到类似 find . -depth -name '*.zip' -exec /usr/bin/unzip -n {} \; -exec rm {} \; 的内容, 但只能解压 *.zip .

最佳答案

您可以使用该模式,每种文件类型一次:

find . -depth -name '*.zip' -exec unzip -n {} \; -delete
find . -depth -name '*.tar.gz' -exec tar zxf {} \; -delete
find . -depth -name '*.rar' -exec unrar x {} \; -delete

当然,此解决方案遍历目标路径的次数与您拥有的文件类型一样多,但它的好处是它很简单。

您可以使用单个 find处理所有文件类型,但可读性会受到一点影响:
find . -depth \( -name '*.zip' -exec unzip -n {} \; -delete \) \
-o \( -name '*.tar.gz' -exec tar zxf {} \; -delete \) \
-o \( -name '*.rar' -exec unrar x {} \; -delete \)

关于bash - 如何提取多格式的多层嵌套压缩文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46628762/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com