ok【批量打包】如何进入 /media/ubunto/SHARE/batocera 目录 把里面的每个文件夹单独打成一个 7z 包 包名就是文件夹名(比如 bios.7z) 遇到同名包会自动覆盖

ok【批量打包】如何进入 /media/ubunto/SHARE/batocera 目录 把里面的每个文件夹单独打成一个 7z 包 包名就是文件夹名(比如 bios.7z) 遇到同名包会自动覆盖


sudo sh -c '整条全部放里面' =======================================
一条完整的命令,复制到终端里就能用,实现你要的效果:
进入/media/ubunto/SHARE/batocera目录
把里面的每个文件夹单独打成一个 7z 包
包名就是文件夹名(比如bios.7z)
遇到同名包会自动覆盖
加上了跳过rom1s文件夹的限制,其他逻辑不变:
打包(跳过 roms)
===========================================

✅ 命令(独立打包 + 跳过rom1s+ 带 sudo)

=【sudo sh -c 'cd /media/ubunto/SHARE && for dir in */; do name="${dir%/}"; if [ "$name" != "rom1s" ]; then 7z a -t7z -m0=lzma2 -mx=9 -y "${name}.7z" "$name"; fi; done' 

==========【sudo sh -c 'cd /media/ubunto/SHARE && for dir in */; do name="${dir%/}"; if [ "$name" != "rom1s" ]; then 7z a -t7z -m0=lzma2 -mx=9 -y "${name}.7z" "$name"; fi; done' 】=========

  1. 路径和你现在的位置匹配:cd /media/ubunto/SHARE就是你当前目录
  2. for dir in */是遍历所有文件夹,不会把文件也当文件夹处理
  3. if [ "$name" != "rom1s" ]精准跳过rom1s,其他所有文件夹(bios、cheats、batocera等)都会单独打包成文件夹名.7z
  4. 用sudo sh -c '整条命令'一次性授权,不会出现权限掉回普通用户的问题,也不会把所有东西打成一个包

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


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

【ubuntu批量解压缩】【某个路径下的所有文件,怎样批量解压缩到指定文件夹】【怎样批量解压缩】

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

源路径: 【'/media/ubunto/LEROMS1/SHAREV42-7z--NTFS-ok/rom1s/' 】
解压到路径:【 /media/ubunto/SHARE/
源路径: 【'/media/ubunto/LEROMS1/SHAREV42-7z--NTFS-ok/rom1s/' 】
解压到路径:【 /media/ubunto/SHARE/】
  1. 进入源路径: 【'/media/ubunto/LEROMS1/SHAREV42-7z--NTFS-ok/rom1s/' 目录
  2. 遍历所有.7z压缩包
  3. 跳过名字是rom1s.7z的包(就算误生成了也不会处理)
  4. 把其他所有.7z包解压成同名文件夹,自动覆盖已有文件
  5. 解压到这个路径:【 /media/ubunto/SHARE/】
=【sudo sh -c 'cd /media/ubunto/LEROMS1/SHAREV42-7z--NTFS-ok/rom1s && for file in *.7z; do dir="${file%.7z}"; if [ "$dir" != "rom1s" ]; then 7z x -y "$file" -o"/media/ubunto/SHARE/"; fi; done'】====



=============分割线:下面的和一忽略==============

压缩包路径'/media/ubunto/LEROMS1/SHARE-Btrfs-V41_batocera/'
某个文件夹里面的【压缩文件.7z】,批量解压到【当前目录】
【 sudo sh -c 'cd /media/ubunto/LEROMS1/SHARE-Btrfs-V41_batocera && for file in *.7z; do dir="${file%.7z}"; if [ "$dir" != "rom1s" ]; then 7z x -y "$file"; fi; done'】

这条命令能跑,但是我想【解压到这个指定目录】: '/media/ubunto/0c5db60c-c935-4a6f-8920-8114203df2c9/'】

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



命令
sudo sh -c 'cd /media/ubunto/LEROMS1/SHARE-Btrfs-V41_batocera && for file in *.7z; do dir="${file%.7z}"; if [ "$dir" != "rom1s" ]; then 7z x -y "$file" -o"/media/ubunto/0c5db60c-c935-4a6f-8920-8114203df2c9/"; fi; done' 】====================================
sudo sh -c 'cd /media/ubunto/LEROMS1/SHARE-Btrfs-V41_batocera && for file in *.7z; do dir="${file%.7z}"; if [ "$dir" != "rom1s" ]; then 7z x -y "$file" -o"/media/ubunto/0c5db60c-c935-4a6f-8920-8114203df2c9/"; fi; done' 

关键修改说明

原命令解压到当前目录,我只加了一个参数:
plaintext
-o"/media/ubunto/0c5db60c-c935-4a6f-8920-8114203df2c9/"
  • -o是 7z 专用的指定解压目标目录参数
  • 后面直接跟路径,不能有空格
  • 我帮你把路径用双引号保护,防止路径有空格 / 特殊字符出错

=====================================下面的是批量解压指定文件夹里面的所有【.7z】自动覆盖==========================================================================


怎樣批量解壓文件夾裏面的所有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'】======= 

-==========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】压缩包,自动覆盖========================================================



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

联系我们 订单查询