怎样解压Centos某个目录下的所有zip压缩文件

比如Centos7.9上的目录 /opt/mydata/ 下有很多子目录,有些子目录下还有子目录,现在希望遍历所有的目录,把里面后缀为zip的压缩文件解压出来,每个压缩文件就解压在相应的目录中,解压完删除相应的压缩文件,该怎么做?

您可以使用Shell脚本或者命令来实现这个任务。下面是一个示例Shell脚本,它可以在CentOS 7.9上执行:

bash 复制代码
#!/bin/bash

# 指定目录
base_dir="/opt/mydata"

# 遍历目录及子目录
find "$base_dir" -type f -name "*.zip" | while read zip_file; do
    # 获取目录路径
    dir_path=$(dirname "$zip_file")

    # 进入目录
    cd "$dir_path" || exit

    # 解压缩文件
    unzip -o "$zip_file"

    # 删除压缩文件
    rm -f "$zip_file"

    # 返回原始目录
    cd - || exit
done

请确保将脚本保存为可执行文件,例如extract_and_remove.sh,并使用以下命令添加执行权限:

bash 复制代码
chmod +x extract_and_remove.sh

然后,您可以运行脚本来执行所需的操作:

bash 复制代码
./extract_and_remove.sh

这个脚本使用find命令查找所有后缀为.zip的文件,然后使用while循环逐个处理。在每次循环中,它提取目录路径,进入目录,解压缩文件,删除压缩文件,最后返回原始目录。请确保在使用脚本之前备份重要数据,以防发生意外。

问:子目录的子目录也会被查询么?

是的,上述脚本中的find命令会递归地搜索指定目录及其所有子目录,因此会包括子目录的子目录在内。这是由-type f选项指定的,它表示只查找普通文件(不包括目录)。

所以,脚本中的find "$base_dir" -type f -name "*.zip"会查找/opt/mydata/目录及其所有子目录中所有后缀为.zip的文件,包括子目录的子目录中的文件。

问:如果压缩文件有密码怎么办?比如密码为AAbb6688?

如果每个ZIP压缩文件都有相同的密码,你可以使用unzip命令的-P选项来指定密码。下面是修改后的脚本:

bash 复制代码
#!/bin/bash

# 指定密码
password="AAbb6688"

# 指定目录
base_dir="/opt/mydata"

# 遍历目录及子目录
find "$base_dir" -type f -name "*.zip" | while read zip_file; do
    # 获取目录路径
    dir_path=$(dirname "$zip_file")

    # 进入目录
    cd "$dir_path" || exit

    # 解压缩文件(指定密码)
    unzip -o -P "$password" "$zip_file"

    # 删除压缩文件
    rm -f "$zip_file"

    # 返回原始目录
    cd - || exit
done

这个脚本添加了一个password变量,然后在unzip命令中使用-P "$password"来指定密码。请确保密码的安全性,并根据实际情况修改脚本中的密码。

相关推荐
mounter62517 分钟前
从内存隔离到运行时防线:透视 Linux 内核安全强化的博弈与演进
linux·网络·安全·linux kernel·kernel
微道道1 小时前
Linux盒子局域网内使用 .local 域名访问,告别IP变化烦恼
linux·运维·服务器·hermes
Bug退散师2 小时前
多路IO复用[select版TCP服务器与poll版TCP服务器]与常用网络编程函数详解
linux·服务器·c语言·网络·驱动开发·tcp/ip
xiaoye-duck2 小时前
《Linux系统编程》Linux 系统多线程(一):线程概念(从虚拟地址空间与分页机制到优缺点解析)
linux·线程
国服第二切图仔3 小时前
05-构建与特性开关
linux·服务器·ubuntu
FREEDOM_X3 小时前
嵌入式——定时器工作原理
linux·c语言·单片机·嵌入式硬件·ubuntu
Thecozzy3 小时前
Skill和MCP和Subagent 的选择
linux·人工智能·ubuntu
硬核子牙4 小时前
代码展示大模型的智能
linux·chatgpt·agent
风曦Kisaki4 小时前
# Linux 系统资源查看命令总结(附命令快查表)
linux·运维·服务器
清水白石0084 小时前
Python 类定义阶段自动注册子类:从 `__init_subclass__` 到插件系统实战
linux·前端·python