在 Linux 中提取和复制 ISO 镜像中的文件的 3 种方法

假设您在Linux服务器上有一个大的ISO文件,并且想要访问、提取或复制其中的一个单个文件。您该如何操作呢?在Linux中有几种方法可以实现。

阅读更多在Linux中创建用于从ISO创建可启动USB的Bash脚本

例如,您可以使用标准的mount命令以只读模式挂载ISO镜像,然后将文件复制到另一个目录中。

在Linux中挂载或提取ISO文件

为此,您需要一个ISO文件(我使用了ubuntu-16.10-server-amd64.iso ISO镜像)和一个挂载点目录来挂载或提取ISO文件。

首先创建一个挂载点目录,您将在其中挂载镜像,如下所示:

$ sudo mkdir /mnt/iso

一旦目录创建完成,您可以轻松地挂载ubuntu-16.10-server-amd64.iso文件,并通过运行以下命令验证其内容。

$ sudo mount -o loop ubuntu-16.10-server-amd64.iso /mnt/iso
$ ls /mnt/iso/
Mount ISO File in Linux

现在您可以进入挂载的目录(/mnt/iso)并访问文件或使用cp命令将文件复制到/tmp目录中。

$ cd /mnt/iso
$ sudo cp md5sum.txt /tmp/
$ sudo cp -r ubuntu /tmp/
Copy Files From ISO File in Linux

注意:使用-r选项递归复制目录,如果你想要的话也可以监视复制命令的进度

使用7zip命令提取ISO内容

如果你不想挂载ISO文件,你可以简单安装7zip,这是一个用于打包或解包各种格式如TAR、XZ、GZIP、ZIP、BZIP2等的开源归档程序。

$ sudo apt-get install p7zip-full p7zip-rar [On Debian/Ubuntu systems]
$ sudo yum install p7zip p7zip-plugins      [On CentOS/RHEL systems]

一旦安装了7zip程序,你可以使用7z命令来提取ISO文件内容。

$ 7z x ubuntu-16.10-server-amd64.iso
7zip – Extract ISO File Content in Linux

注意:与Linux的mount命令相比,7zip似乎更快速聪明地打包或解包任何存档格式。

使用isoinfo命令提取ISO内容

isoinfo命令用于ISO9660镜像的目录列表,但你也可以使用该程序来提取文件。

就像我说的,isoinfo程序执行目录列表,所以首先列出ISO文件的内容。

$ isoinfo -i ubuntu-16.10-server-amd64.iso -l
List ISO Content in Linux

现在你可以像这样从ISO镜像中提取单个文件:

$ isoinfo -i ubuntu-16.10-server-amd64.iso -x MD5SUM.TXT > MD5SUM.TXT

注意:需要重定向,因为-x选项将提取到标准输出。

Extract Single File from ISO in Linux

嗯,有很多方法,如果你知道任何有用的命令或程序用来从ISO文件中提取或复制文件,请

Source:
https://www.tecmint.com/extract-files-from-iso-files-linux/