收起左侧

NAS压缩包批量解压终极脚本:预览+多选+智能解压,效率拉满!

3
回复
165
查看
[ 复制链接 ]

1

主题

2

回帖

0

牛值

江湖小虾

🧾 引言

在飞牛NAS的日常使用中,用户常面临压缩包批量处理的痛点:

  • 手动操作繁琐:无法批量解压,逐个点击解压耗时且易出错

为解决这个问题,编写了一个批量解压交互式Shell脚本,除了批量解压外还支持:
✅ 智能路径选择
✅ 压缩包内容预览
✅ 多文件/关键字筛选
✅ 安全删除确认
✅ 同名文件冲突处理(覆盖/跳过/重命名)


🧩 脚本核心功能一览

智能路径选择:自动验证文件夹是否存在​✅ 格式灵活筛选:支持 ZIP/RAR/7Z 三种主流格式​✅ 两种解压模式

  • 每个压缩包单独生成同名文件夹
  • 所有文件统一解压到指定目录
    删除确认机制:解压后可选择是否删除源文件
    错误处理防护:路径无效/格式不支持时自动提示
    预览功能:解压前查看压缩包内容
    同名文件处理:统一解压模式下支持覆盖/跳过/重命名

🔄 交互流程


🛠️ 交互式脚本代码(完整版)

代码文件过长,就不占篇幅了,可私信发送“解压脚本”获取文件
#!/bin/bash
# 提示用户输入目标路径
read -p "请输入压缩包所在文件夹路径(例如 /volume1/Download): " target_dir
# 检查路径是否存在
if [ ! -d "$target_dir" ]; then
  echo "❌ 路径不存在,请检查后重试!"
  exit 1
fi
# 进入目标目录
cd "$target_dir" || exit
# 显示当前目录内容
echo "当前目录文件:"
ls -l
# 新增预览选项
****** 此处省略N行代码
  echo "✅ 预览完成!"
fi
# 新增选择特定压缩包功能
read -p "是否选择特定压缩包解压?(y/n): " select_confirm
if [[ "$select_confirm" =~ ^[Yy]$ ]]; then
  ****** 此处省略N行代码
  # 读取用户选择
  read -p "请选择要解压的压缩包编号(多个用空格分隔): " -a selected_indices
  # 处理选择
  ****** 此处省略N行代码
# 提供解压方式选择
****** 此处省略N行代码
# 解压所选文件
****** 此处省略N行代码
# 解压后询问是否删除源文件
****** 此处省略N行代码
  echo "✅ 所有压缩包已删除!"
else
  echo "⚠️ 已保留压缩包文件"
fi

📋 使用步骤详解

第1步:准备环境

  1. 安装解压工具:
    opkg update && opkg install unzip unrar p7zip
    
  2. 启用SSH服务(设置 → 系统设置 → 安全 → SSH服务)

第2步:运行脚本

  1. 创建脚本文件:
    nano batch_extract.sh
    
  2. 粘贴代码并保存(按 Ctrl+O 保存,Ctrl+X 退出)
  3. 赋予执行权限:
    chmod +x batch_extract.sh
    

第3步:交互式操作

  1. 运行脚本:
    ./batch_extract.sh
    
  2. 按照提示逐步选择路径和解压方式

🧪 示例操作演示

$ ./batch_extract.sh
请输入压缩包所在文件夹路径(例如 /volume1/Download): /vol1/1000/test
当前目录文件:
total 149360
-rwxrwx--x+ 1 Jaben Users     6835 Jan 22 21:11 batch_extract.sh
-rw-rw----+ 1 Jaben Users 51429574 Jan 22 17:41 经典粤语歌1.zip
-rw-rw----+ 1 Jaben Users 42907943 Jan 22 17:42 经典粤语歌2.7z
-rw-rw----+ 1 Jaben Users 58590974 Jan 22 17:42 经典粤语歌3.7z
是否预览所有压缩包内容?(y/n): y
🔍 正在预览压缩包内容...
--------------------
压缩包: 经典粤语歌1.zip
--------------------
压缩包: *.rar
./batch_extract.sh: line 28: unrar: command not found
--------------------
压缩包: 经典粤语歌2.7z
--------------------
压缩包: 经典粤语歌3.7z
--------------------
✅ 预览完成!
是否选择特定压缩包解压?(y/n): y
请输入搜索关键字(留空显示所有): 2
--------------------
可选压缩包列表(输入编号选择):
1) 经典粤语歌2.7z
2) 取消
--------------------
请选择要解压的压缩包编号(多个用空格分隔): 2
❌ 已取消操作
Jaben@HomeNas:/vol1/1000/test$ ./batch_extract.sh
请输入压缩包所在文件夹路径(例如 /volume1/Download): /vol1/1000/test
当前目录文件:
total 149360
-rwxrwx--x+ 1 Jaben Users     6835 Jan 22 21:11 batch_extract.sh
-rw-rw----+ 1 Jaben Users 51429574 Jan 22 17:41 经典粤语歌1.zip
-rw-rw----+ 1 Jaben Users 42907943 Jan 22 17:42 经典粤语歌2.7z
-rw-rw----+ 1 Jaben Users 58590974 Jan 22 17:42 经典粤语歌3.7z
是否预览所有压缩包内容?(y/n): y
🔍 正在预览压缩包内容...
--------------------
压缩包: 经典粤语歌1.zip
--------------------
压缩包: *.rar
./batch_extract.sh: line 28: unrar: command not found
--------------------
压缩包: 经典粤语歌2.7z
--------------------
压缩包: 经典粤语歌3.7z
--------------------
✅ 预览完成!
是否选择特定压缩包解压?(y/n): n
1) 每个压缩包单独文件夹
2) 统一解压到指定目录
3) 取消
请选择解压方式:1
正在解压: 经典粤语歌1.zip
Archive:  经典粤语歌1.zip
  inflating: 经典粤语歌1/宝石Gem-野狼Disco(feat.陈伟霆).mp3  
  inflating: 经典粤语歌1/草蜢-失恋.mp3  
  inflating: 经典粤语歌1/草蜢-失恋阵线联盟.mp3  
  inflating: 经典粤语歌1/蔡国权-不装饰你的梦.mp3  
  inflating: 经典粤语歌1/阿梨粤-偏偏喜欢你.mp3  
  inflating: 经典粤语歌1/阿细-追光者.mp3  
正在解压: *.rar
./batch_extract.sh: line 86: unrar: command not found
正在解压: 经典粤语歌2.7z

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Xeon(R) CPU E3-1225 v5 @ 3.30GHz (506E3),ASM,AES-NI)

Scanning the drive for archives:
1 file, 42907943 bytes (41 MiB)

Extracting archive: 经典粤语歌2.7z
--
Path = 经典粤语歌2.7z
Type = 7z
Physical Size = 42907943
Headers Size = 277
Method = LZMA2:25
Solid = +
Blocks = 1

Everything is Ok                       

Files: 5
Size:       43089394
Compressed: 42907943
正在解压: 经典粤语歌3.7z

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Xeon(R) CPU E3-1225 v5 @ 3.30GHz (506E3),ASM,AES-NI)

Scanning the drive for archives:
1 file, 58590974 bytes (56 MiB)

Extracting archive: 经典粤语歌3.7z
--
Path = 经典粤语歌3.7z
Type = 7z
Physical Size = 58590974
Headers Size = 248
Method = LZMA2:25
Solid = +
Blocks = 1

Everything is Ok              

Files: 5
Size:       58876835
Compressed: 58590974
✅ 解压完成!
是否删除已解压的压缩包?(y/n): n
⚠️ 已保留压缩包文件


⚠️ 注意事项

  • 路径安全:不要选择系统关键目录(如 /etc
  • 文件覆盖风险:统一解压模式下,同名文件会被覆盖
  • 性能监控:通过 top 命令监控CPU/内存使用

💡 高级用法建议

  • 扩展支持更多格式:在 *.zip *.rar *.7z 中添加其他格式
  • 递归子目录处理:使用 find 命令处理嵌套目录
  • 日志记录:添加日志记录功能,便于追踪操作记录

📌 结语

通过本文的交互式脚本,用户可以高效管理飞牛NAS中的压缩包文件。从路径选择到内容预览,再到多选解压与删除确认,每一步都经过安全设计,帮助您减少误操作,提升NAS使用体验。

收藏
送赞 2
分享

0

主题

11

回帖

0

牛值

江湖小虾

对小白的我不是很友好,但还是为你点赞。还有我在飞牛docker里面的镜像仓库能搜索到,winrar,但不会用

3

主题

13

回帖

0

牛值

江湖小虾

fnOS1.0上线纪念勋章飞牛百度网盘玩家

可以考虑打个安装包,目前这方面飞牛还是空白也是刚需

0

主题

14

回帖

0

牛值

江湖小虾

这个不错,功能全面化又迈出一步

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则