Unix下打包命令的使用(轉)
Unix下打包命令的使用(轉)[@more@] 在DOS或Windows下,有各種壓縮與解壓縮工具軟體,其主要功能是將一目錄下的眾多檔案或子目錄打包並壓縮成一個檔案,便於備份、組織與管理。而在Unix系統中,卻無此類能打包並同時壓縮的工具。
在Unix系統中,充分利用Unix系統本身的命令tar、cpio和compress等來做到打包和壓縮,使之充當類似DOS下的壓縮軟體,同時在Unix系統中亦具有通用性。
在Unix系統中,是先透過cpio或tar將眾多的檔案打包成一個檔案庫後,再用compress將檔案庫壓縮來達到目的的。下面分別以cpio和tar來說明使用的方法和步驟。
一、cpio
1.檔案或目錄打包。
打包有如下多種情況:
A)含子目錄打包:
find /usr/lib -print|cpio -o〉/u0/temp1.cpio
將/usr /lib目錄下的檔案與子目錄打包成一個檔案庫為/u0/temp1.cpio。
若透過-o選項來打包整個目錄下的所有檔案與子目錄,常先利用find目錄名-print來找出所有檔案與子目錄的名稱,透過管道“|”傳給cpio打包。
B)不含子目錄的打包:
ls /usr/lib|cpio -o〉/u0/temp1.cpio
將/usr/lib目錄下的檔案(不含子目錄下的檔案)打包成一個檔案庫為/u0/temp1.cpio。
C)特定檔案打包:
可利用文字搜尋命令grep與管道配合,可以排除或選擇特定型別的檔案傳給cpio打包。如:ls /usr/lib/*.c|cpio -o〉/u0/temp1.cpio
或ls /usr/lib|grep ′.c$′|cpio -o〉/u0/temp1.cpio
意思均為找出/usr/lib目錄下以.c結尾的檔案予以打包。
又如:ls /usr/lib|grep abcd|cpio -o〉/u0/temp1.cpio ,其意為找出/usr/lib目錄下檔名中含有abcd字元的檔案予以打包。
ls /usr/lib|grep -v abcd|cpio -o〉/u0/temp1.cpio,其意為找出/usr/lib目錄下檔名中不含 abcd 字元的檔案予以打包。-v選項在grep命令中的意思是排除含有字串的行列。
如此,可充分利用Unix的管道和一些命令的強大功能來實現檔案的打包。
2.壓縮:
檔案打包完成後,即可用Unix中的compress命令(/usr/bin下)壓縮打包檔案。對一般的文字檔案,壓縮率較高,可達81%。
compress /u0/temp1.cpio則將檔案庫/u0/temp1.cpio壓縮為/u0/temp1.cpio.Z(自動新增.Z並刪除/u0/temp1.cpio )。
3.解壓:
uncompress /u0/temp1.cpio.Z則自動還原為/u0/temp1.cpio。
4.解包展開:
將按原目錄結構解包展開到當前所在目錄下。若以相對路徑打包的,當解包展開時,也是以相對路徑存放展開的檔案資料;若以絕對路徑打包的,當解包展開時,也是以絕對路徑存放展開的檔案資料。因此注意若為相對路徑,應先進入相應的目錄下再展開。
cd /u1
cpio -id〈/u0/tmp1.cpio則將/u0/temp1.cpio解壓到/u1下(這裡假設temp1.cpio以相對路徑壓縮)。
若加u選項,如cpio -iud〈/u0/temp1.cpio則檔案若存在將被覆蓋,即強制覆蓋。
cpio -id〈/u0/temp1.cpio *.c 則展開其中的*.c檔案,類似於DOS系統中的Pkzip軟體中Pkunzip -d temp1.zip解包功能。
5.顯示:
cpio -it〈/u0/temp1.cpio [*.c] 顯示檔案庫內的檔名稱,類似於DOS系統中的Pkzip軟體中Pkunzip -vbnm temp1.zip功能。
二、tar
1.檔案或目錄打包:
tar -cvf /u0/temp2.tar /usr/lib
將/usr/lib目錄下的檔案與子目錄打包成一個檔案庫為/u0/temp2.tar。
tar -cvf /u0/temp2.tar /usr/lib *.c *.f
將/usr/lib目錄下的*.c *.f等檔案(不含子目錄)打包。
注意:如果指定檔案如*.c *.f或*.*,則打包時均不含子目錄。如果指定為.或*,則含子目錄。
2.壓縮:
同上:compress /u0/temp2.tar壓縮為/u0/temp2.tar.Z
3.解壓:
uncompress /u0/temp2.tar.Z則還原為/u0/temp2.tar。
4.解包展開:
tar -xvf /u0/temp2.tar
若以相對路徑打包的,解包時,以相對路徑存放展開的檔案資料;若以絕對路徑打包的,解包時,以絕對路徑存放展開的檔案資料。
若指定展開的檔名,須注意檔案的目錄路徑。
5.顯示:
tar -tvf /u0/temp2.tar 顯示檔案庫內的檔名稱。當指定檔名時,亦須注意檔案的路徑。
相對來說這兩個命令各有優缺點。
1)tar速度比cpio慢,且不能跨越兩份儲存媒體,但檔案格式幾乎在所有的Unix系統中都能通用,且使用簡便。
2)cpio則由於可透過管道功能,使得其打包時的檔案選擇、排除功能非常強,且能跨越多份媒體,並能備份特殊的系統檔案。
另外,壓縮命令compress比DOS下的Pkzip的壓縮率要低些。經測試,在一個目錄下527個文字檔案共15.7MB,在Unix打包後用compress壓縮,大小為 2.1MB;相同的檔案拷到DOS系統用Pkzip壓縮,則大小為1.4MB。
補充:實際在UNIX下有zip,gzip等壓縮軟體,壓縮率比compress高,建議使用。
在Unix系統中,充分利用Unix系統本身的命令tar、cpio和compress等來做到打包和壓縮,使之充當類似DOS下的壓縮軟體,同時在Unix系統中亦具有通用性。
在Unix系統中,是先透過cpio或tar將眾多的檔案打包成一個檔案庫後,再用compress將檔案庫壓縮來達到目的的。下面分別以cpio和tar來說明使用的方法和步驟。
一、cpio
1.檔案或目錄打包。
打包有如下多種情況:
A)含子目錄打包:
find /usr/lib -print|cpio -o〉/u0/temp1.cpio
將/usr /lib目錄下的檔案與子目錄打包成一個檔案庫為/u0/temp1.cpio。
若透過-o選項來打包整個目錄下的所有檔案與子目錄,常先利用find目錄名-print來找出所有檔案與子目錄的名稱,透過管道“|”傳給cpio打包。
B)不含子目錄的打包:
ls /usr/lib|cpio -o〉/u0/temp1.cpio
將/usr/lib目錄下的檔案(不含子目錄下的檔案)打包成一個檔案庫為/u0/temp1.cpio。
C)特定檔案打包:
可利用文字搜尋命令grep與管道配合,可以排除或選擇特定型別的檔案傳給cpio打包。如:ls /usr/lib/*.c|cpio -o〉/u0/temp1.cpio
或ls /usr/lib|grep ′.c$′|cpio -o〉/u0/temp1.cpio
意思均為找出/usr/lib目錄下以.c結尾的檔案予以打包。
又如:ls /usr/lib|grep abcd|cpio -o〉/u0/temp1.cpio ,其意為找出/usr/lib目錄下檔名中含有abcd字元的檔案予以打包。
ls /usr/lib|grep -v abcd|cpio -o〉/u0/temp1.cpio,其意為找出/usr/lib目錄下檔名中不含 abcd 字元的檔案予以打包。-v選項在grep命令中的意思是排除含有字串的行列。
如此,可充分利用Unix的管道和一些命令的強大功能來實現檔案的打包。
2.壓縮:
檔案打包完成後,即可用Unix中的compress命令(/usr/bin下)壓縮打包檔案。對一般的文字檔案,壓縮率較高,可達81%。
compress /u0/temp1.cpio則將檔案庫/u0/temp1.cpio壓縮為/u0/temp1.cpio.Z(自動新增.Z並刪除/u0/temp1.cpio )。
3.解壓:
uncompress /u0/temp1.cpio.Z則自動還原為/u0/temp1.cpio。
4.解包展開:
將按原目錄結構解包展開到當前所在目錄下。若以相對路徑打包的,當解包展開時,也是以相對路徑存放展開的檔案資料;若以絕對路徑打包的,當解包展開時,也是以絕對路徑存放展開的檔案資料。因此注意若為相對路徑,應先進入相應的目錄下再展開。
cd /u1
cpio -id〈/u0/tmp1.cpio則將/u0/temp1.cpio解壓到/u1下(這裡假設temp1.cpio以相對路徑壓縮)。
若加u選項,如cpio -iud〈/u0/temp1.cpio則檔案若存在將被覆蓋,即強制覆蓋。
cpio -id〈/u0/temp1.cpio *.c 則展開其中的*.c檔案,類似於DOS系統中的Pkzip軟體中Pkunzip -d temp1.zip解包功能。
5.顯示:
cpio -it〈/u0/temp1.cpio [*.c] 顯示檔案庫內的檔名稱,類似於DOS系統中的Pkzip軟體中Pkunzip -vbnm temp1.zip功能。
二、tar
1.檔案或目錄打包:
tar -cvf /u0/temp2.tar /usr/lib
將/usr/lib目錄下的檔案與子目錄打包成一個檔案庫為/u0/temp2.tar。
tar -cvf /u0/temp2.tar /usr/lib *.c *.f
將/usr/lib目錄下的*.c *.f等檔案(不含子目錄)打包。
注意:如果指定檔案如*.c *.f或*.*,則打包時均不含子目錄。如果指定為.或*,則含子目錄。
2.壓縮:
同上:compress /u0/temp2.tar壓縮為/u0/temp2.tar.Z
3.解壓:
uncompress /u0/temp2.tar.Z則還原為/u0/temp2.tar。
4.解包展開:
tar -xvf /u0/temp2.tar
若以相對路徑打包的,解包時,以相對路徑存放展開的檔案資料;若以絕對路徑打包的,解包時,以絕對路徑存放展開的檔案資料。
若指定展開的檔名,須注意檔案的目錄路徑。
5.顯示:
tar -tvf /u0/temp2.tar 顯示檔案庫內的檔名稱。當指定檔名時,亦須注意檔案的路徑。
相對來說這兩個命令各有優缺點。
1)tar速度比cpio慢,且不能跨越兩份儲存媒體,但檔案格式幾乎在所有的Unix系統中都能通用,且使用簡便。
2)cpio則由於可透過管道功能,使得其打包時的檔案選擇、排除功能非常強,且能跨越多份媒體,並能備份特殊的系統檔案。
另外,壓縮命令compress比DOS下的Pkzip的壓縮率要低些。經測試,在一個目錄下527個文字檔案共15.7MB,在Unix打包後用compress壓縮,大小為 2.1MB;相同的檔案拷到DOS系統用Pkzip壓縮,則大小為1.4MB。
補充:實際在UNIX下有zip,gzip等壓縮軟體,壓縮率比compress高,建議使用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-947271/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- unix下 nohup 命令使用方法(轉)
- 常用UNIX命令(轉)
- Linux/Unix環境下的make命令詳解(轉)Linux
- hp unix cluster使用的命令
- UNIX系統下的使用者限制(轉)
- Unix 下使用 Find 命令查詢需要清理的檔案
- unix的AWK命令介紹(轉)
- UNIX命令詳解(轉)
- 需要注意的unix命令使用
- Oracle中使用unix命令Oracle
- 類unix系統下常用工具及命令(轉)
- [轉]UNIX find命令實踐
- UNIX系統操作命令(轉)
- dos2unix, unix2dos 對應的命令(轉)
- [分享]Unix下的“魔法兔仔”(轉)
- SCO Unix系統下網路印表機的使用(轉)
- UNix下chmod,chown命令 詳解
- UNIX find 命令的高階技術 (轉)
- 實用Unix/Linux 命令(轉)Linux
- unix系統下常用的解壓縮命令
- 關於UNIX及類UNIX下壓縮和解壓的命令簡介
- UNIX 下 SCO TCP/IP ftp 命令表TCPFTP
- 標準化您的 UNIX 命令列工具(轉)命令列
- hp-unix 命令使用方法
- unix 命令詳解 - 轉自網路
- 基本UNIX命令集介紹(轉)
- UNIX下的PHP環境配置,+apache (轉)PHPApache
- SCO UNIX下的反刪除(undelete)(轉)delete
- unix下複製檔案(轉)
- 我使用過的Linux命令之dos2unix - 將DOS格式文字檔案轉換成UNIX格式Linux
- 用DOS命令破除UNIX管理員口令 (轉)
- 用DOS命令破除 UNIX 管理員口令(轉)
- SCO UNIX上cpio命令詳細用法(轉)
- SCO-UNIX在vmware下的安裝(轉)
- UNIX系統下各檔案的作用(轉)
- UNIX VI命令
- 常用UNIX命令
- unix命令1