马春杰杰 Exit Reader Mode

macOS使用unzip时出现错误:Illegal byte sequence

完整错误如下:

checkdir error:  cannot create [??+--?] 2020.02.27 N
                 Illegal byte sequence
                 unable to process  2020.02.27 N/xxx.jpg.

问题出在压缩包的中文名字上,我们可以使用以下命令替换解压:

ditto -V -x -k --sequesterRsrc 2001-2100.zip outfilename

  1. ditto: 这是调用 ditto 命令的开始。ditto 可以用来复制文件和目录,也可以用来合并目录内容,以及创建和解压缩归档。

  2. -V: 这个选项用来显示详细的进程信息,即在执行过程中,ditto 会显示更多的信息,让用户知道当前正在进行什么操作。

  3. -x: 这个选项指定 ditto 应当解压缩归档。ditto 可以处理多种压缩格式,包括 zip 格式。

  4. -k: 这个选项指示 ditto 该归档文件是使用 zip 压缩算法压缩的。这是处理 zip 文件时的标准选项。

  5. --sequesterRsrc: 这个选项用于处理 Mac OS 的资源叉(resource fork)和 Finder 信息。它会将这些信息存储在单独的文件中,而不是合并到主文件中。

  6. 2001-2100.zip: 这是要解压缩的归档文件的名称。在这个例子中,文件名是 2001-2100.zip

  7. outfilename: 这是解压缩后的文件或目录将要存放的目标路径。ditto 会将 2001-2100.zip 解压缩到这个指定的路径。

如果是压缩的话,可以试试这个:

ditto -c -k --keepParent --sequesterRsrc "my source file" "myArchive.zip"

  1. ditto: 这是命令的开始,调用 ditto 工具。ditto 可以用于复制文件和目录、合并目录内容,以及创建和解压缩归档。

  2. -c: 这个选项指示 ditto 创建一个归档文件。这是制作压缩文件时使用的标准选项。

  3. -k: 这个选项告诉 ditto 使用 zip 格式来创建归档。它是处理 zip 归档的常用选项。

  4. --keepParent: 这个选项使得 ditto 在归档中包含源目录的名称。这意味着解压缩后,文件将保留其原始的父级目录结构。

  5. --sequesterRsrc: 这个选项用于特别处理 Mac OS 的资源叉(resource fork)和 Finder 信息。它将这些信息存储在归档中的单独文件里,而不是合并到主文件中。

  6. "my source file": 这是要被压缩的源文件或目录的路径。在这个例子中,它被称为 "my source file"

  7. "myArchive.zip": 这是创建的压缩归档文件的目标名称。在此例中,归档文件将被命名为 "myArchive.zip"

本文最后更新于2024年1月17日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!