如何使用shell脚本解压指定目录下的全部zip压缩文件?
Shell脚本批量解压指定目录下zip文件实现方案
前置检查
首先确保系统已安装unzip解压工具,不同发行版安装命令如下:
- Debian/Ubuntu 系列:
sudo apt install unzip - CentOS/RHEL 系列:
sudo yum install unzip
基础批量解压命令
1. 直接在压缩包所在目录执行
当前目录就是存放压缩包的路径时,直接运行以下命令即可全部解压:
for zip_file in *.zip; do unzip "$zip_file"; done
2. 指定压缩包目录和自定义解压输出目录
如果不想进入压缩包目录操作,或者需要把文件统一解压到指定路径,使用以下命令,修改路径为你实际的路径即可:
# 替换为你的压缩包存放路径 ZIP_DIR="/data/your_zip_dir" # 替换为你想要输出解压文件的路径 OUTPUT_DIR="/data/unzip_result" # 自动创建输出目录(不存在的情况下) mkdir -p "$OUTPUT_DIR" # 批量遍历解压 for zip_file in "$ZIP_DIR"/*.zip; do unzip "$zip_file" -d "$OUTPUT_DIR" done
优化参数说明
如果需要覆盖已存在的同名文件、不输出解压过程日志,可以给unzip加参数:
-o:自动覆盖已有文件,不需要二次确认-q:静默模式,不打印解压过程信息
优化后的命令如下:
for zip_file in "$ZIP_DIR"/*.zip; do unzip -o -q "$zip_file" -d "$OUTPUT_DIR" done
本次需要处理的压缩包列表:
- Lgl_Entitiy.txt.zip
- Lgl_Entitiy.txt_1.zip
- Lgl_Relate.txt.zip
- Lgl_Relate.txt_1.zip
- Lgl_Name.txt.zip
- Lgl_Name.txt_1.zip
内容的提问来源于stack exchange,提问作者Marcus
相关产品推荐
相关产品推荐

