如何查看 iso9660/Joliet+UCS-3 卷的区分大小写的文件名?

如何查看 iso9660/Joliet+UCS-3 卷的区分大小写的文件名?

我有一个 ISO,我试图用它来通过 Wine 安装软件。我将 ISO 安装为环回设备。 Windows 安装程序不断抱怨它无法找到特定的 CAB 文件,并要求我找到它们。安装程序软件要求我找到的文件名混合了大小写,但是当我在 Linux 下安装 ISO 时,所有目录列表都将文件显示为全小写。如果我-o check=relaxed在挂载 iso 时进行设置,那么我可以请求混合大小写的文件,Linux 会“找到”它们。但如果我列出目录,我仍然会得到全部小写。

我猜想 Windows 安装程序包要么正在执行目录列表,要么出于某种原因它正在获取它所期望的文件名的全小写版本。

我认为有几条前进的道路:

  1. 让 Linux 显示在 Joliet 扩展中编码的混合大小写文件名
  2. 以保留原始大小写的方式将 ISO 提取到本机 Linux 文件系统中
  3. 找到 Windows 的副本,并使用它将文件复制到 Linux 也可以读取且区分大小写的 Windows 本机文件系统 (NTFS)。
  4. 涉及葡萄酒的东西。

一些示例命令:

% isoinfo -d -i example.iso
...
Joliet with UCS level 3 found
NO Rock Ridge present

% # When using isoinfo, filenames are all caps
% isoinfo -f -i example.iso
DIRNAME/DIRNAME/LONG_FILE_NAME.CAB

% # When using ls, filenames are all lowercase
% ls /mnt/iso/dirname/dirname
long_file_name.cab

答案1

您可以首先isoinfo -Jls -i cdrom.iso列出Joliet名称而不是默认ISO-9660名称,但这会导致输出的可读性很差。

使用 可获得更好的可读结果isoinfo -Jfls -i cdrom.iso,因为它以更常用的方式呈现目录树。

当然,您也可以使用以下命令从 ISO 映像中提取所有文件:isoinfo -J -X如果您想提取选定数量的文件,则可以使用isoinfo -J -X -find -path <glob-pattern>。请参阅find手册页以获取更多信息。

可以提取单个文件以stdout使用isoinfo -J -x pathname.但请注意,您需要正确匹配文件系统映像中的路径名。

请注意,该-find选项是在 2010 年添加的,因此您需要最新版本的isoinfo.

相关内容