發布時間: 2017-06-16 14:13:39
假設你的 Linux 服務器上有一個超大的 ISO 鏡像文件,你想要打開它,然后提取或者復制其中的一個文件。你會怎么做呢?其實在 Linux 系統里,有很多方法來實現這個要求。例如你可以使用傳統的 mount 命令以只讀方式把 ISO 鏡像文件加載為 loop 設備,然后再把文件復制到另一個目錄。
在 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/
在 Linux 系統里掛載 ISO 鏡像
現在你就可以進入到掛載目錄 /mnt/iso 里,查看文件或者使用 cp 命令把文件復制到 /tmp 目錄了。
- $ cd /mnt/iso
- $ sudo cp md5sum.txt /tmp/
- $ sudo cp -r ubuntu /tmp/
在 Linux 系統中復制 ISO 鏡像里的文件
注意:-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 工具在 Linux 系統下提取 ISO 鏡像里的文件
注意:跟 Linux 的 mount 命令相比起來,7zip 在壓縮和解壓縮任何格式的文件時速度更快,更智能。
使用 isoinfo 命令來提取 ISO 鏡像文件內容
雖然 isoinfo 命令是用來以目錄的形式列出 iso9660 鏡像文件的內容,但是你也可以使用該程序來提取文件。
我說過,isoinfo 程序會顯示目錄列表,因此先列出 ISO 鏡像文件的內容。
- $ isoinfo -i ubuntu-16.10-server-amd64.iso -l
Linux 里列出 ISO 文件的內容
現在你可以按如下的方式從 ISO 鏡像文件中提取單文件:
- $ isoinfo -i ubuntu-16.10-server-amd64.iso -x MD5SUM.TXT > MD5SUM.TXT
注意:因為 -x 解壓到標準輸出,必須使用重定向來提取指定文件。
從 ISO 鏡像文件中提取單個文件
就到這里吧,其實還有很多種方法來實現這個要求,如果你還知道其它有用的命令或工具來提取復制出 ISO 鏡像文件中的文件,請分享給我們。
下一篇: 全新Kali Linux系統安裝指南