解压命令、分卷解压命令、备份脚本
怎么改成【只捆绑、不压缩、超快打包】(用-mx=0)。
先把你原始命令格式化,方便看:
=====原命令=【sudo bash -c 'cd /media/ubunto/SHARE && 7z a -t7z -mx=9 -mmt=on -md=1024m -v3900m -y -x!rom1s /media/ubunto/LEROMS1/bak001/SHAREV42整合包.7z *' 】=============
整体作用一句话说明
以 root 权限,进入 /media/ubunto/SHARE 目录,把里面所有文件(排除 rom1s 文件夹)用最高压缩率打包成分卷 7z 压缩包,输出到 /media/ubunto/LEROMS1/bak001/SHAREV42 整合包.7z
二、逐段逐符号 100% 讲解
我按顺序拆,每个符号、每个参数都讲。
1. 最外层:权限 + 执行壳
plaintext
sudo
- 作用:以 root 管理员权限 运行(解决文件夹权限不足)
plaintext
bash -c '命令内容'
- bash:用 bash shell 执行
- -c:把后面单引号里的一整串当一条命令执行
- ' ':强引用,保证里面的空格、特殊符号不被系统提前解析
2. 切换工作目录(源文件所在位置)
plaintext
cd /media/ubunto/SHARE &&
- cd:进入目录
- /media/ubunto/SHARE= 源文件目录(你要打包的东西都在这里)
- &&:前面命令成功,才执行后面命令(逻辑与)
3. 核心:7z 打包命令本体
plaintext
7z
- 7-Zip 命令行工具
plaintext
a
- Add 添加文件到压缩包(最核心动作)
4. 压缩参数(每个-开头都是开关)
plaintext
-t7z
- -t:指定压缩格式
- 7z:格式为 7z
plaintext
-mx=9
- -mx:压缩级别
- 9:最高压缩(最慢、最小)
- ✅ 你要的:-mx=0= 不压缩,仅存储 / 捆绑(最快)
plaintext
-mmt=on
- 多线程启用(on = 开启)
plaintext
-md=1024m
- 字典大小 1024M(压缩越强占用内存越大)
plaintext
-v3900m
- 分卷大小:每个包 3900MB
-
会自动生成:
- SHAREV42 整合包.7z.001
- SHAREV42 整合包.7z.002
- ...
plaintext
-y
- 所有提示自动确认 yes(不弹问你是否覆盖)
plaintext
-x!rom1s
- -x:排除
- !:取反(不打包)
- 排除名为rom1s的文件 / 文件夹
5. 最重要:输出路径 + 打包范围
plaintext
/media/ubunto/LEROMS1/bak001/SHAREV42整合包.7z
✅ 这是 = 目标压缩包路径(输出到哪)
plaintext
*
✅ 这是 = 打包范围:当前目录下所有文件
三、源路径 / 目标路径 清晰总结
源路径(你要打包的东西在哪)
plaintext
/media/ubunto/SHARE
进入这个目录,打包里面所有内容。
目标路径(压缩包生成到哪)
plaintext
/media/ubunto/LEROMS1/bak001/SHAREV42整合包.7z
排除路径
plaintext
rom1s
不打包这个文件夹。
四、你要的【只捆绑、不压缩、超快打包】最终命令
把-mx=9改成-mx=0即可:
bash
运行
sudo bash -c 'cd /media/ubunto/SHARE && 7z a -t7z -mx=0 -mmt=on -y -x!rom1s /media/ubunto/LEROMS1/bak001/SHAREV42整合包.7z *'
说明:
- -mx=0:不压缩,仅打包,速度极快
- 我去掉了-md=1024m和-v3900m(不需要大字典、不需要分卷也可以删)
- 如果你还要分卷 3900m,就保留-v3900m
带分卷版:
bash
运行
sudo bash -c 'cd /media/ubunto/SHARE && 7z a -t7z -mx=0 -mmt=on -v3900m -y -x!rom1s /media/ubunto/LEROMS1/bak001/SHAREV42整合包.7z *'
五、所有符号速查表
表格
| 符号 | 含义 |
|---|---|
| sudo | 管理员权限 |
| bash -c | 执行单引号内的整段命令 |
| ' ' | 强引用,保护空格 |
| cd | 进入目录 |
| && | 前成功 → 后执行 |
| 7z a | 添加到压缩包 |
| -t7z | 格式 7z |
| -mx=0 | 不压缩(仅存储) |
| -mx=9 | 最高压缩 |
| -v3900m | 分卷 3900MB |
| -y | 自动确认 |
| -x!名称 | 排除文件 / 文件夹 |
| * | 所有文件 |
总结
- 源目录:/media/ubunto/SHARE
- 输出包:/media/ubunto/LEROMS1/bak001/SHAREV42整合包.7z
- 超快打包关键:-mx=0(不压缩,只捆绑)
- 你给的原命令是最高压缩、慢、体积最小;改成-mx=0就是最快、体积最大。
需要我再给你解压命令、分卷解压命令、备份脚本也可以直接说!
好的,你都说说。
一、原命令完整还原 + 逐字逐符号全解
原命令格式化:
bash
运行
sudo bash -c 'cd /media/ubunto/SHARE && 7z a -t7z -mx=9 -mmt=on -md=1024m -v3900m -y -x!rom1s /media/ubunto/LEROMS1/bak001/SHAREV42整合包.7z *'
1. 前置权限与执行符号
-
sudo
临时授予root 管理员权限,解决外接硬盘/media/目录读写权限不足。
-
bash -c
调用 bash 解释器,-c代表:把后面单引号内整段内容,当做一条完整命令执行。
-
' '单引号
强封闭符号,保护内部空格、特殊字符,防止系统提前截断解析。
-
cd /media/ubunto/SHARE
切换工作目录,这是需要打包的源文件目录。
-
&&
逻辑连接符:前一条命令执行成功,才执行后面 7z 打包命令;切目录失败则直接终止打包。
2. 7z 核心动作与格式参数
-
7z
系统安装的 7zip 命令行程序。
-
a
全称 Add,7z 核心指令:添加文件到压缩包 = 新建 / 追加压缩包。
-
-t7z
-t:指定压缩格式;7z:固定为 7z 格式,区别于 zip、rar。
-
-mx=9
压缩等级:
- mx=0:仅捆绑、零压缩、速度最快(你需要的模式)
- mx=9:最高极限压缩、速度最慢、体积最小
-
-mmt=on
开启多线程压缩,利用 CPU 多核加速。
-
-md=1024m
压缩字典大小 1024MB,字典越大压缩率越高、内存占用越高;无压缩模式下此参数无效,可以删掉。
-
-v3900m
分卷压缩:单个压缩包体积限制为 3900MB,自动生成:xxx.7z.001、xxx.7z.002、xxx.7z.003……
-
-y
全自动确认:遇到覆盖文件、权限提示、覆盖警告,全部默认选 yes,无需手动回车。
-
-x!rom1s
-x:排除文件 / 目录;!:固定语法,后面跟名称;含义:跳过、不打包 rom1s 文件夹。
3. 两条关键路径 + 匹配范围
-
压缩包输出路径(保存位置)
plaintext
/media/ubunto/LEROMS1/bak001/SHAREV42整合包.7z
打包好的文件,最终存到这里。 -
待打包源文件范围
末尾*:代表当前目录/media/ubunto/SHARE下所有文件 + 所有子文件夹。
二、路径极简总结(牢记)
- 打包源目录:/media/ubunto/SHARE
- 打包排除目录:rom1s
- 压缩包输出目录:/media/ubunto/LEROMS1/bak001/
- 压缩包文件名:SHAREV42整合包.7z
三、你要的「只捆绑、不压缩、极速打包」命令
版本 1:保留 3900M 分卷(和原命令结构一致,仅改压缩级别)
bash
运行
sudo bash -c 'cd /media/ubunto/SHARE && 7z a -t7z -mx=0 -mmt=on -v3900m -y -x!rom1s /media/ubunto/LEROMS1/bak001/SHAREV42整合包.7z *'
版本 2:不分卷、纯极速打包(日常备份推荐)
删掉分卷参数-v3900m,更简洁:
bash
运行
sudo bash -c 'cd /media/ubunto/SHARE && 7z a -t7z -mx=0 -mmt=on -y -x!rom1s /media/ubunto/LEROMS1/bak001/SHAREV42整合包.7z *'
四、对应解压命令(分卷 / 普通包 全覆盖)
1. 普通单个 7z 压缩包 解压
bash
运行
sudo 7z x /media/ubunto/LEROMS1/bak001/SHAREV42整合包.7z -o/media/ubunto/SHARE -y
参数说明:
- x:完整解压(保留目录结构,推荐)
- -o:指定解压输出目录,o 后面无空格
- -y:自动覆盖文件
2. 3900M 分卷压缩包 专用解压
分卷只需要指定第一个 .7z.001 文件,7z 自动识别全部分卷:
bash
运行
sudo 7z x /media/ubunto/LEROMS1/bak001/SHAREV42整合包.7z.001 -o/media/ubunto/SHARE -y
3. 只解压、不覆盖已有文件
去掉-y,冲突文件手动询问:
bash
运行
sudo 7z x 压缩包路径 -o解压目录
五、7z 常用核心参数对照表(长期备用)
表格
| 参数 | 作用 |
|---|---|
| a | 打包 / 添加压缩 |
| x | 完整解压(保留文件夹结构) |
| e | 纯提取文件(打散所有文件夹,不推荐) |
| -t7z | 7z 格式 |
| -mx=0 | 仅存储、无压缩、极速 |
| -mx=6 | 均衡压缩(速度 + 体积折中) |
| -mx=9 | 极限压缩 |
| -mmt=on | 多线程加速 |
| -vxxxm | 分卷大小,例:-v4000m |
| -x!xxx | 排除指定文件 / 文件夹 |
| -o路径 | 解压目标目录 |
| -y | 自动确认 / 覆盖 |
六、额外补充实用小技巧
- 查看压缩包内容(不解压)
bash
运行
7z l 压缩包路径
-
打包后自动删除源文件(谨慎使用)
增加参数-sdel,打包完成删除原文件:
bash
运行
7z a -mx=0 -sdel 输出包路径 *
-
只打包指定单个文件夹
把末尾*改成文件夹名,例如只打包 rom:
bash
运行
7z a 输出包路径 rom文件夹名
七、关键注意点
- 挂载硬盘/media/ubunto/目录必须正常挂载,否则命令报错;
- 分卷压缩必须所有分段文件齐全才能解压,缺一个就失败;
- -mx=0模式下,文件总大小几乎不变,打包秒完成,适合大容量 ROM 合集快速备份。