怎樣批量解壓文件夾裏面的所有7z壓縮包,跳過rom1s文件夾+驗證完整性

怎樣批量解壓文件夾裏面的所有7z壓縮包,跳過rom1s文件夾+驗證完整性


【命令完全配套、跳过rom1s、带 sudo 的批量解压命令,复制就能用】:

bash
批量解压到当前目录命令:
【sudo sh -c 'cd /media/ubunto/SHARE && for file in *.7z; do dir="${file%.7z}"; if [ "$dir" != "rom1s" ]; then 7z x -y "$file"; fi; done' 

说明

  • 这条命令会:
    1. 进入/media/ubunto/SHARE目录
    2. 遍历所有.7z压缩包
    3. 跳过名字是rom1s.7z的包(就算误生成了也不会处理)
    4. 把其他所有.7z包解压成同名文件夹,自动覆盖已有文件

额外版本(解压后顺便删除压缩包)

如果你想解压完直接删掉.7z文件,保持目录干净,用这条:
bash
运行
sudo sh -c 'cd /media/ubunto/SHARE && for file in *.7z; do dir="${file%.7z}"; if [ "$dir" != "rom1s" ]; then 7z x -y "$file" && rm -f "$file"; fi; done' 

需要我再给你一条命令,帮你检查一下解压后的文件夹和原压缩包的完整性吗?


============================


一条和打包 / 解压命令配套的完整性校验命令,能检查所有压缩包和原文件夹是否完好,也会自动跳过rom1s:
bash
运行
sudo sh -c 'cd /media/ubunto/SHARE && for dir in */; do name="${dir%/}"; if [ "$name" != "rom1s" ] && [ -d "$name" ] && [ -f "${name}.7z" ]; then echo -e "\n=== 校验 $name ==="; echo "原文件夹大小:"; du -sh "$name"; echo "压缩包大小:"; du -sh "${name}.7z"; echo "压缩包完整性测试:"; 7z t "${name}.7z"; fi; done' 

这条命令会做这几件事:

  1. 自动进入/media/ubunto/SHARE目录
  2. 遍历所有文件夹,跳过rom1s
  3. 对每个文件夹和它对应的.7z包做两件校验:
    • 对比两者的大小,确认数据量正常
    • 用7z t命令直接测试压缩包是否损坏、能否正常解压
  4. 输出结果用=== 校验 文件夹名 ===分隔,一目了然
如果看到Everything is Ok,就说明这个压缩包是完好无损的。

需要我再给你一条 ** 一键删除所有.7z包(跳过 rom1s)** 的清理命令吗?
====================================================================



一条安全、不碰原文件夹、只删 7z 包、跳过 rom1s的清理命令,直接复制就能用:
bash
运行
sudo sh -c 'cd /media/ubunto/SHARE && for file in *.7z; do dir="${file%.7z}"; if [ "$dir" != "rom1s" ]; then rm -f "$file"; fi; done' 

说明

  • 它只会删除当前目录下的.7z文件,不会动任何文件夹
  • 会自动跳过rom1s.7z(如果存在的话)
  • 执行前可以先跑下面这条「预览命令」,看看它会删哪些文件,确认无误再删:
bash
运行
cd /media/ubunto/SHARE && for file in *.7z; do dir="${file%.7z}"; if [ "$dir" != "rom1s" ]; then echo "将删除: $file"; fi; done 
预览没问题,再用上面的删除命令即可







刀神道一奶-商品自动发货系统

联系我们 订单查询