在Linux 統(tǒng)下從ISO鏡像中提取和復(fù)制文件的3種方法
假設(shè)你的 Linux 服務(wù)器上有一個超大的 ISO 鏡像文件,你想要打開它,然后提取或者復(fù)制其中的一個文件。你會怎么做呢?
其實(shí)在 Linux 系統(tǒng)里,有很多方法來實(shí)現(xiàn)這個要求。
比如說,你可以使用傳統(tǒng)的 mount 命令以只讀方式把 ISO 鏡像文件加載為 loop 設(shè)備,然后再把文件復(fù)制到另一個目錄。
在 Linux 系統(tǒng)下提取 ISO 鏡像文件
為了完成該測試,你得有一個 ISO 鏡像文件(我使用 ubuntu-16.10-server-amd64.iso 系統(tǒng)鏡像文件)以及用于掛載和提取 ISO 鏡像文件的目錄。
首先,使用如下命令創(chuàng)建一個掛載目錄來掛載 ISO 鏡像文件:
- $ sudo mkdir /mnt/iso
目錄創(chuàng)建完成后,你就可以運(yùn)行如下命令很容易地掛載 ubuntu-16.10-server-amd64.iso 系統(tǒng)鏡像文件,并查看其中的內(nèi)容。
- $ sudo mount -o loop ubuntu-16.10-server-amd64.iso /mnt/iso
- $ ls /mnt/iso/
在 Linux 系統(tǒng)里掛載 ISO 鏡像
現(xiàn)在你就可以進(jìn)入到掛載目錄 /mnt/iso 里,查看文件或者使用 cp 命令把文件復(fù)制到 /tmp 目錄了。
- $ cd /mnt/iso
- $ sudo cp md5sum.txt /tmp/
- $ sudo cp -r ubuntu /tmp/
在 Linux 系統(tǒng)中復(fù)制 ISO 鏡像里的文件
注意:-r 選項用于遞歸復(fù)制目錄里的內(nèi)容。如有必要,你也可以監(jiān)控復(fù)制命令的完成進(jìn)度。
使用 7zip 命令提取 ISO 鏡像里的內(nèi)容
如果不想掛載 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 鏡像文件里的內(nèi)容了。
- $ 7z x ubuntu-16.10-server-amd64.iso
使用 7zip 工具在 Linux 系統(tǒng)下提取 ISO 鏡像里的文件
注意:跟 Linux 的 mount 命令相比起來,7zip 在壓縮和解壓縮任何格式的文件時速度更快,更智能。
使用 isoinfo 命令來提取 ISO 鏡像文件內(nèi)容
雖然 isoinfo 命令是用來以目錄的形式列出 iso9660 鏡像文件的內(nèi)容,但是你也可以使用該程序來提取文件。
我說過,isoinfo 程序會顯示目錄列表,因此先列出 ISO 鏡像文件的內(nèi)容。
- $ isoinfo -i ubuntu-16.10-server-amd64.iso -l
Linux 里列出 ISO 文件的內(nèi)容
現(xiàn)在你可以按如下的方式從 ISO 鏡像文件中提取單文件:
- $ isoinfo -i ubuntu-16.10-server-amd64.iso -x MD5SUM.TXT > MD5SUM.TXT
注意:因為 -x 解壓到標(biāo)準(zhǔn)輸出,必須使用重定向來提取指定文件。
從 ISO 鏡像文件中提取單個文件
就到這里吧,其實(shí)還有很多種方法來實(shí)現(xiàn)這個要求,如果你還知道其它有用的命令或工具來提取復(fù)制出 ISO 鏡像文件中的文件,請在下面的評論中跟大家分享下。