怎样解压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"来指定密码。请确保密码的安全性,并根据实际情况修改脚本中的密码。

相关推荐
___波子 Pro Max.13 分钟前
Linux ps命令-ef参数详解
linux
春日见15 分钟前
眼在手上外参标定保姆级教学(vscode + opencv)
linux·运维·服务器·数码相机·opencv·ubuntu·3d
xwill*23 分钟前
python 字符串拼接
linux·windows·python
TracyGC2 小时前
Linux环境-RTX5080显卡CUDA12.8下安装mmcv/mmdetection3d
linux·运维·服务器
xu_ws2 小时前
Linux下快速安装配置Redis全攻略
linux·运维·服务器
飘忽不定的bug2 小时前
ubuntu22.04部署ROS2-humble
linux·ubuntu·ros2
坚定信念,勇往无前3 小时前
Alibaba Cloud Linux 4.0安装mongodump
linux·运维·服务器
hello_2503 小时前
排查K8s Pod Core Dump问题
linux·docker·kubernetes
iAkuya3 小时前
(leetcode)力扣100 21搜索二维矩阵2(z型搜索)
linux·leetcode·矩阵
Ghost Face...3 小时前
DQ与DQS的90°相位关系:从原理到图像的完整解析
linux