【解压】解压指定文件到指定目录文件夹
============母命令=============================
【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' 】 上面这条命令我想把它改成这个文件【'/media/ubunto/LEROMS1/【BATOCERA】合集:/SHAREV42-yasuobao/SHAREV42整合包mx=0.7z/SHAREV42整合包mx=0.7z.001' 】 解压到这个路径的文件夹里面:/media/ubunto/SHAR
========================================
解压来源(唯一)
/media/ubunto/LEROMS1/【BATOCERA】合集:/SHAREV42-yasuobao/SHAREV42整合包mx=0.7z===================================================
===============报错命令==【sudo sh -c '7z x -y "/media/ubunto/LEROMS1/【BATOCERA】合集:/SHAREV42-yasuobao/SHAREV42整合包mx=0.7z.001" -o"/media/ubunto/SHARE/"' 】==============
==================================================================
100% 就是特殊字符 + 引号 + 空格导致的!
最终终极命令(直接复制,必成功)
为什么之前一直错?
这条命令包含的完整真实信息(只看这里就懂)
=====================
命令说明(不用看历史,看这里就全懂)
可直接复制执行的完整命令
===OK=【sudo 7z x -y '/media/ubunto/LEROMS1/【BATOCERA】合集:/SHAREV42-yasuobao/SHAREV42整合包mx=0.7z/SHAREV42整合包mx=0.7z.001' -o'/media/ubunto/SHARE/' 】=====ok
==找不到路径==【sudo sh -c 'cd "/media/ubunto/LEROMS1/【BATOCERA】合集/SHAREV42-yasuobao/SHAREV42整合包mx=0.7z" && for file in *.7z; do dir="${file%.7z}"; if [ "$dir" != "rom1s" ]; then 7z x -y "$file" -o"/media/ubunto/SHARE/"; fi; done' 】===============
最直白、最清楚、最准确的原因(一看就懂)
一、你之前一直报错的 真正原因(只有 2 个)
1. 你的文件夹名字里,真的带一个中文冒号:
2. 你的文件藏在一个子文件夹里
二、我最后给你的这条命令 为什么能成功?
成功原因 1:完全 1:1 复制你真实路径,一个字符都没改
成功原因 2:用了单引号' '包住整个路径
成功原因 3:路径层级完全正确
三、一句话总结(最关键)
之前报错:
现在能解压: