歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

linux 打包命令

在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的管道和一些命令的強大功能來實現文件的打包。
  二、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.壓縮:
  同上: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系統業務使用(特別是數據管理與備份)中,經過一番研究、整理後,充分利用Unix系統本身的命令tar、cpio和compress等來做到打包和壓縮,使之充當類似DOS下的壓縮軟件,同時在Unix系統中亦具有通用性。
  在Unix系統中,是先通過cpio或tar將眾多的文件打包成一個文件庫後,再用compress將文件庫壓縮來達到目的的。
Copyright © Linux教程網 All Rights Reserved