假設你的 linux 伺服器上有一個超大的 iso 鏡像檔案,你想要打開它,然後提取或者複制其中的一個檔案。你會怎麼做呢?
其實在 linux 系統裡,有很多方法來實作這個要求。
比如說,你可以使用傳統的 mount 指令以隻讀方式把 iso 鏡像檔案加載為 loop 裝置,然後再把檔案複制到另一個目錄。
<a target="_blank"></a>
為了完成該測試,你得有一個 iso 鏡像檔案(我使用 ubuntu-16.10-server-amd64.iso 系統鏡像檔案)以及用于挂載和提取 iso 鏡像檔案的目錄。
首先,使用如下指令建立一個挂載目錄來挂載 iso 鏡像檔案:
<code>$ sudo mkdir /mnt/iso</code>
目錄建立完成後,你就可以運作如下指令很容易地挂載 ubuntu-16.10-server-amd64.iso 系統鏡像檔案,并檢視其中的内容。
<code>$ sudo mount -o loop ubuntu-16.10-server-amd64.iso /mnt/iso</code>
<code>$ ls /mnt/iso/</code>
在 linux 系統裡挂載 iso 鏡像
<code>$ cd /mnt/iso</code>
<code>$ sudo cp md5sum.txt /tmp/</code>
<code>$ sudo cp -r ubuntu /tmp/</code>
在 linux 系統中複制 iso 鏡像裡的檔案
如果不想挂載 iso 鏡像,你可以簡單地安裝一個 7zip 工具,這是一個自由而開源的解壓縮軟體,用于壓縮或解壓不同類型格式的檔案,包括 tar、xz、gzip、zip、bzip2 等等。
<code>$ sudo apt-get install p7zip-full p7zip-rar [on debian/ubuntu systems]</code>
<code>$ sudo yum install p7zip p7zip-plugins [on centos/rhel systems]</code>
7zip 軟體安裝完成後,你就可以使用<code>7z</code> 指令提取 iso 鏡像檔案裡的内容了。
使用 7zip 工具在 linux 系統下提取 iso 鏡像裡的檔案
注意:跟 linux 的 mount 指令相比起來,7zip 在壓縮和解壓縮任何格式的檔案時速度更快,更智能。
雖然 <code>isoinfo</code> 指令是用來以目錄的形式列出 iso9660 鏡像檔案的内容,但是你也可以使用該程式來提取檔案。
我說過,isoinfo 程式會顯示目錄清單,是以先列出 iso 鏡像檔案的内容。
<code>$ isoinfo -i ubuntu-16.10-server-amd64.iso -l</code>
linux 裡列出 iso 檔案的内容
現在你可以按如下的方式從 iso 鏡像檔案中提取單檔案:
<code>$ isoinfo -i ubuntu-16.10-server-amd64.iso -x md5sum.txt > md5sum.txt</code>
注意:因為 <code>-x</code> 解壓到标準輸出,必須使用重定向來提取指定檔案。
從 iso 鏡像檔案中提取單個檔案
原文釋出時間為:2017-11-27
本文來自雲栖社群合作夥伴“linux中國”