{放遊戲}怎樣複製遊戲進入到BATOCERA遊戲系統{殺SHARE}磁盤裏面-Ubuntu 刷写遊戲rom包進BATOCERA怎樣壓縮然後複製文件
===========壓縮複製狂野之習三合一命令============================================
cd /media/ubunto/数据/Switch/games/saierdakuangyezhixi && 7z a -mx=0 kyzx01.7z kyzx01 && sudo rsync -av --progress kyzx01.7z /media/ubunto/SHARE1/ && sudo 7z x /media/ubunto/SHARE1/kyzx01.7z -aoa -o/media/ubunto/SHARE1/ && sudo rm -f /media/ubunto/SHARE1/kyzx01.7z
==================壓縮複製狂野之習三合一命令=====================================
写一套分步命令 + 一键整合版,完全按你的要求:
- 原文件留在源盘不动
- 用 7z 打包,压缩包也留在源盘
- 把压缩包复制到目标盘
-
在目标盘解压(可选解压后删包)
=======================================================================
最终正确命令(跳过 rom1s)
bash运行sudo sh -c 'cd /media/ubunto/SHARE && for d in */; do dir="${d%/}"; if [ "$dir" != "rom1s" ]; then 7z a -t7z -m0=lzma2 -mx=9 -y "${dir}.7z" "$dir"; fi; done'
你刚才报错的唯一原因
你上次发的命令 最后少了一个闭合单引号',所以系统一直等着你把命令写完,就报错了。我这条已经把引号补全 + 跳过 rom1s,完美可用。直接复制这条去运行就行!
========================================================
一、分步版(更稳妥,每步看清楚再执行)
第 1 步:在源盘把文件夹打包成 7z(仅存储,不压缩,速度最快)
bash
运行
cd /media/ubunto/数据/Switch/games/saierdawangguozhilei && 7z a -mx=0 wgzl01-pack.7z wgzl01
- -mx=0:不压缩,仅打包,速度几乎等于瞬间,适合游戏 rom
- 打包后的文件:/media/ubunto/数据/Switch/games/saierdawangguozhilei/wgzl01-pack.7z
- 原文件夹wgzl01会完整留在源盘,不会被删除
第 2 步:把压缩包复制到目标盘
bash
运行
sudo rsync -av --progress /media/ubunto/数据/Switch/games/saierdawangguozhilei/wgzl01-pack.7z /media/ubunto/SHARE1/
- 单文件复制,速度能跑满 USB 带宽,不会被小文件拖累
- 复制完成后,压缩包会出现在/media/ubunto/SHARE1/wgzl01-pack.7z
第 3 步:在目标盘解压(可选解压后删除压缩包)
基础版:只解压,不删包
bash
运行
sudo 7z x /media/ubunto/SHARE1/wgzl01-pack.7z -aoa -o/media/ubunto/SHARE1/
进阶版:解压完成后自动删除压缩包(更干净)
bash
运行
sudo 7z x /media/ubunto/SHARE1/wgzl01-pack.7z -aoa -o/media/ubunto/SHARE1/ && sudo rm -f /media/ubunto/SHARE1/wgzl01-pack.7z
问题很简单,是你给我发打包命令的时候,多加了个后缀。然后呢,你那复制的时候,那后缀又是错的,有没有?
对,你说得完全没错,是我给你写错了后缀,导致命令前后不一致,给你添麻烦了
我给你修正两套完全对应的命令,你直接复制用就行:
方案 1:压缩包叫wgzl01.7z(前后统一)
第一步:源盘打包(-mx=0)
bash
运行
cd /media/ubunto/数据/Switch/games/saierdawangguozhilei && sudo 7z a -mx=0 wgzl01.7z wgzl01
第二步:直接跨盘解压
bash
运行
sudo 7z x /media/ubunto/数据/Switch/games/saierdawangguozhilei/wgzl01.7z -aoa -o/media/ubunto/SHARE1/
方案 2:压缩包叫wgzl01-pack.7z(前后统一)
第一步:源盘打包(-mx=0)
bash
运行
cd /media/ubunto/数据/Switch/games/saierdawangguozhilei && sudo 7z a -mx=0 wgzl01-pack.7z wgzl01
第二步:直接跨盘解压
bash
运行
sudo 7z x /media/ubunto/数据/Switch/games/saierdawangguozhilei/wgzl01-pack.7z -aoa -o/media/ubunto/SHARE1/
核心要点
-
只要打包和解压命令里的压缩包文件名完全一致,就不会出错。
-
你现在目录里的包叫wgzl01-pack.7z,所以用方案 2 的命令就能直接跑通。
要不要我帮你把这两套命令里的路径,都改成你现在终端里的完整路径,直接复制就能用?
二、一键整合版(全程一条命令搞定,复制就能用)
问题很简单,是你给我发打包命令的时候,多加了个后缀。然后呢,你那复制的时候,那后缀又是错的,有没有?
对,你说得完全没错,是我给你写错了后缀,导致命令前后不一致,给你添麻烦了
我给你修正两套完全对应的命令,你直接复制用就行:
方案 1:压缩包叫wgzl01.7z(前后统一)
第一步:源盘打包(-mx=0)
bash
运行
cd /media/ubunto/数据/Switch/games/saierdawangguozhilei && sudo 7z a -mx=0 wgzl01.7z wgzl01
第二步:直接跨盘解压
bash
运行
sudo 7z x /media/ubunto/数据/Switch/games/saierdawangguozhilei/wgzl01.7z -aoa -o/media/ubunto/SHARE1/
方案 2:压缩包叫wgzl01-pack.7z(前后统一)
第一步:源盘打包(-mx=0)
bash
运行
cd /media/ubunto/数据/Switch/games/saierdawangguozhilei && sudo 7z a -mx=0 wgzl01-pack.7z wgzl01
第二步:直接跨盘解压
bash
运行
sudo 7z x /media/ubunto/数据/Switch/games/saierdawangguozhilei/wgzl01-pack.7z -aoa -o/media/ubunto/SHARE1/
核心要点
- 只要打包和解压命令里的压缩包文件名完全一致,就不会出错。
- 你现在目录里的包叫wgzl01-pack.7z,所以用方案 2 的命令就能直接跑通。
要不要我帮你把这两套命令里的路径,都改成你现在终端里的完整路径,直接复制就能用?
把上面三步合成一条,打包→复制→解压(带自动删包),全程自动执行:
bash
运行
cd /media/ubunto/数据/Switch/games/saierdawangguozhilei && 7z a -mx=0 wgzl01-pack.7z wgzl01 && sudo rsync -av --progress wgzl01-pack.7z /media/ubunto/SHARE1/ && sudo 7z x /media/ubunto/SHARE1/wgzl01-pack.7z -aoa -o/media/ubunto/SHARE1/ && sudo rm -f /media/ubunto/SHARE1/wgzl01-pack.7z
cd /media/ubunto/数据/Switch/games/saierdakuangyezhixi && 7z a -mx=0 kyzx01.7z kyzx01 && sudo rsync -av --progress kyzx01.7z /media/ubunto/SHARE1/ && sudo 7z x /media/ubunto/SHARE1/kyzx01.7z -aoa -o/media/ubunto/SHARE1/ && sudo rm -f /media/ubunto/SHARE1/kyzx01.7z
==================================================================
三、命令拆解说明(关键部分)
表格
| 片段 | 作用 |
|---|---|
| cd 源目录 && 7z a -mx=0 包名.7z 文件夹 | 进入源目录,用 7z 无压缩打包,包留在源盘 |
| sudo rsync -av --progress 包名.7z 目标盘路径 | 单文件复制到目标盘,带进度条 |
| sudo 7z x 目标盘包路径 -aoa -o目标盘路径 | 解压到目标盘,强制覆盖同名文件 |
| && sudo rm -f 目标盘包路径 | 解压成功后,自动删除目标盘的压缩包(源盘的包会保留) |
补充说明
-
源盘的压缩包wgzl01-pack.7z会一直留在/media/ubunto/数据/Switch/games/saierdawangguozhilei/,不会被自动删除,需要手动删的话再单独执行:
bash运行
rm -f /media/ubunto/数据/Switch/games/saierdawangguozhilei/wgzl01-pack.7z
- 如果你想给包换个名字,直接把所有wgzl01-pack.7z改成你想要的名字就行。
需要我帮你把这条命令改成 ** 带压缩(不是纯存储)** 的版本,让压缩包体积更小吗?
好的,你直接告诉我怎么写,还有原理,要只写一个例子就行了。
只给你一套最终可用命令 + 极简原理
一、最终命令(直接复制运行)
bash
运行
cd /media/ubunto/数据/Switch/games/saierdawangguozhilei && 7z a -mx=0 wgzl01.7z wgzl01 && sudo rsync -av --progress wgzl01.7z /media/ubunto/SHARE1/ && sudo 7z x /media/ubunto/SHARE1/wgzl01.7z -aoa -o/media/ubunto/SHARE1/
二、每一段干什么(原理一句话讲清)
- 进入源文件夹
bash
运行
cd /media/ubunto/数据/Switch/games/saierdawangguozhilei
作用:定位到游戏所在目录,方便打包。
- 7z 无压缩打包(速度最快)
bash
运行
7z a -mx=0 wgzl01.7z wgzl01
- a= 打包创建压缩包
- -mx=0= 只打包不压缩,速度极快
- 打包完wgzl01.7z留在源盘,原文件不动
- 把压缩包复制到目标盘 SHARE1
bash
运行
sudo rsync -av --progress wgzl01.7z /media/ubunto/SHARE1/
- 单文件传输,不会因为小文件多而变慢
- --progress显示进度,你能看到速度
- 在目标盘解压
bash
运行
sudo 7z x /media/ubunto/SHARE1/wgzl01.7z -aoa -o/media/ubunto/SHARE1/
- x= 完整解压
- -aoa= 强制覆盖不询问
- -o指定解压位置
三、最终效果
- 源盘:原文件夹wgzl01还在 + 多出一个压缩包wgzl01.7z
- 目标盘 SHARE1:出现完整解压好的wgzl01游戏文件夹
- 全程比直接复制文件夹快很多倍
不是这个意思。你不是说你帮我把这条命令改成带压缩,不是纯存储的版本。是这个,就说你你直接告诉我怎么写,还有原理就行了。就用那个 7z 压缩的。
好,我只给你一条带压缩的命令 + 极简原理,就一个例子,不多废话。
一、最终命令(正常压缩版本,体积更小)
bash
运行
cd /media/ubunto/数据/Switch/games/saierdawangguozhilei && 7z a -mx=5 wgzl01.7z wgzl01 && sudo rsync -av --progress wgzl01.7z /media/ubunto/SHARE1/ && sudo 7z x /media/ubunto/SHARE1/wgzl01.7z -aoa -o/media/ubunto/SHARE1/
二、原理(只讲关键)
- -mx=0= 纯打包、不压缩(速度最快,但包很大)
- -mx=5= 中等压缩(包会变小,速度适中)
- -mx=9= 最高压缩(包最小,但打包最慢)
你这条用的是 -mx=5,意思:
- 打包时会真正压缩,让wgzl01.7z体积更小
- 复制这个小压缩包更快
- 到目标盘再解压还原成完整游戏文件夹
- 原文件始终留在源盘不动,不会删
三、如果你想要最高压缩(更小体积)
把-mx=5改成-mx=9即可:
bash
运行
cd /media/ubunto/数据/Switch/games/saierdawangguozhilei && 7z a -mx=9 wgzl01.7z wgzl01 && sudo rsync -av --progress wgzl01.7z /media/ubunto/SHARE1/ && sudo 7z x /media/ubunto/SHARE1/wgzl01.7z -aoa -o/media/ubunto/SHARE1/
你再补充一下这个命令的结构,还有格式规,那个就是那种格式。然后再说明哪个是路径,然后,还有那些,哪哪个是要复制的东西,还有或者压缩的东西,还有那些命令它的是什么意思?讲一下就就可以了。
一、完整命令(中等压缩版,直接可用)
bash
运行
cd /media/ubunto/数据/Switch/games/saierdawangguozhilei && 7z a -mx=5 wgzl01.7z wgzl01 && sudo rsync -av --progress wgzl01.7z /media/ubunto/SHARE1/ && sudo 7z x /media/ubunto/SHARE1/wgzl01.7z -aoa -o/media/ubunto/SHARE1/
二、整体结构 / 格式规则
这条命令是四段用 && 连起来的,意思是:上一步成功做完,再自动做下一步
bash
运行
【进入源目录】 && 【打包成7z】 && 【复制压缩包】 && 【解压到目标盘】
- &&:必须是两个英文&,中间不能有空格
- 所有路径、文件名不能有中文空格,有空格要加英文双引号
- 命令、参数、路径之间必须用英文空格分开
- -o后面紧跟目标路径,不能加空格
三、逐段拆解(哪个是啥、干什么用)
1)进入源文件夹
bash
运行
cd /media/ubunto/数据/Switch/games/saierdawangguozhilei
- cd:进入目录命令
- 后面这一长串:源文件夹所在路径
- 作用:告诉系统 “我现在要在这个目录里干活”
2)7z 压缩打包(核心部分)
bash
运行
7z a -mx=5 wgzl01.7z wgzl01
结构:
bash
运行
7z a -mx=5 【压缩包名字】 【要压缩的文件夹】
- 7z:调用压缩工具
- a:archive,创建压缩包
-
-mx=5:压缩级别
- 0= 只打包不压缩(最快)
- 5= 中等压缩(包更小,速度适中)
- 9= 最大压缩(包最小,最慢)
- wgzl01.7z:生成的压缩包文件名(会留在源盘)
- wgzl01:你要压缩的原文件夹(原文件不动,不会被删除)
3)把压缩包复制到目标盘
bash
运行
sudo rsync -av --progress wgzl01.7z /media/ubunto/SHARE1/
- sudo:管理员权限,解决权限不够
- rsync:复制工具,带进度
- -av:保持文件属性、显示详细过程
- --progress:显示复制进度条
- wgzl01.7z:要复制的压缩包
- /media/ubunto/SHARE1/:目标盘路径(复制到这里)
4)在目标盘解压
bash
运行
sudo 7z x /media/ubunto/SHARE1/wgzl01.7z -aoa -o/media/ubunto/SHARE1/
结构:
bash
运行
sudo 7z x 【压缩包路径】 -aoa -o【解压到哪里】
- x:完整解压(保留文件夹结构)
- /media/ubunto/SHARE1/wgzl01.7z:要解压的压缩包位置
- -aoa:强制覆盖同名文件,不问你
- -o/xxx:解压目标路径,-o和路径之间不能有空格
四、最简总结
- 先进去源目录
- 把wgzl01文件夹压缩成wgzl01.7z(留在源盘)
- 把这个压缩包复制到SHARE1
- 在SHARE1里解压出来
- 原文件夹自始至终不动,安全不丢