講解Unix系統(tǒng)cpio命令
我們知道Unix系統(tǒng)Cpio命令用于復(fù)制需要多個(gè)磁帶卷的文件、特殊文件或文件系統(tǒng)。或者,當(dāng)要將文件從運(yùn)行當(dāng)前的 Solaris 發(fā)行版的系統(tǒng)復(fù)制到運(yùn)行 SunOS 4.0/4.1 發(fā)行版的系統(tǒng)時(shí)使用。Unix系統(tǒng)Cpio的命令參數(shù)太多,這里只介相關(guān)參數(shù)。
將目錄中的所有文件復(fù)制到磁帶。步驟如下:
1. 轉(zhuǎn)到包含要復(fù)制的文件的目錄。
2. 將可寫磁帶插入磁帶機(jī)中。
3. 將文件復(fù)制到磁帶。使用命令:
$ ls | cpio -oc > /dev/rmt/n
參數(shù)說明:ls 為 Unix系統(tǒng)Cpio 命令提供文件名列表;cpio -oc 指定 cpio 命令應(yīng)該在復(fù)制出模式 (-o) 下操作,并以 ASCII 字符格式 (-c) 寫入頭信息。這些選項(xiàng)確保可移植到其他供應(yīng)商的系統(tǒng)。> /dev/rmt/n :指定輸出文件。
系統(tǒng)會(huì)將目錄中的所有文件復(fù)制到指定磁帶機(jī)中的磁帶,同時(shí)會(huì)覆寫該磁帶中的任何現(xiàn)有文件。屏幕將顯示復(fù)制的總塊數(shù)。
應(yīng)用實(shí)例:
將/export/home/目錄中的所有文件復(fù)制到磁帶 :
- $ cd /export/home/kryten
- $ ls | cpio -oc > /dev/rmt/0
- 16 blocks
- $ cpio -civt < /dev/rmt/0
- -rw-r--r-- 1 root other 0 Jul 28 14:59 2004, filea
- -rw-r--r-- 1 root other 0 Jul 28 14:59 2004, fileb
- -rw-r--r-- 1 root other 0 Jul 28 14:59 2004, filec
- drwxr-xr-x 2 root other 0 Jul 28 14:59 2004, letters
- 16 blocks
從磁帶中恢復(fù)所有文件 (Unix系統(tǒng)cpio)
如果已使用相對(duì)路徑名創(chuàng)建了歸檔文件,則恢復(fù)文件時(shí)會(huì)在當(dāng)前目錄中以目錄形式生成輸入文件。但是,如果已使用絕對(duì)路徑名創(chuàng)建了歸檔文件,則將使用相同的絕對(duì)路徑在系統(tǒng)中重新創(chuàng)建該文件。步驟如下:
1. 轉(zhuǎn)到要放置文件的目錄。
2. 將磁帶插入磁帶機(jī)。
3. 從磁帶中提取所有文件。 命令如下:
$ cpio -icvd < /dev/rmt/n
參數(shù)說明:-i 從標(biāo)準(zhǔn)輸入中提取文件。-c 指定 Unix系統(tǒng)cpio 命令應(yīng)以 ASCII 字符格式讀取文件。-v 在以與 ls 命令輸出類似的格式恢復(fù)文件時(shí),顯示這些文件。-d 根據(jù)需要?jiǎng)?chuàng)建目錄。< /dev/rmt/n 指定輸出文件。
【編輯推薦】