1. 程式人生 > >Shell命令-文件壓縮解壓縮之tar、unzip

Shell命令-文件壓縮解壓縮之tar、unzip

用戶名 說明 打包壓縮 ber 日期 模式 -perm link 文件名

文件及內容處理 - tar、unip

1.tar:打包壓縮命令

tar命令的功能說明

tar 命令常用語用於備份文件,tar 是用來建立,還原備份文件的工具程序,它可以加入,解開備份文件內的文件

tar命令的語法格式

tar [OPTION...] [FILE]...
tar [參數] [文件] ...

tar命令的常用參數說明:

tar 參數很多,表1為 tar 命令的參數及說明:

表1: tar 命令的參數及說明

參數選項 解釋說明
-A或--catenate 新增文件到已存在的備份文件。
-b<區塊數目>或--blocking-factor=<區塊數目> 設置每筆記錄的區塊數目,每個區塊大小為12Bytes。
-B或--read-full-records 讀取數據時重設區塊大小。
-c或--create 建立新的備份文件。
-C<目的目錄>或--directory=<目的目錄> 切換到指定的目錄。
-d或--diff或--compare 對比備份文件內和文件系統上的文件的差異。
-f<備份文件>或--file=<備份文件> 指定備份文件。
-F<Script文件>或--info-script=<Script文件> 每次更換磁帶時,就執行指定的Script文件。
-g或--listed-incremental 處理GNU格式的大量備份。
-G或--incremental 處理舊的GNU格式的大量備份。
-h或--dereference 不建立符號連接,直接復制該連接所指向的原始文件。
-i或--ignore-zeros 忽略備份文件中的0 Byte區塊,也就是EOF。
-k或--keep-old-files 解開備份文件時,不覆蓋已有的文件。
-K<文件>或--starting-file=<文件> 從指定的文件開始還原。
-l或--one-file-system 復制的文件或目錄存放的文件系統,必須與tar指令執行時所處的文件系統相同,否則不予復制。
-L<媒體容量>或-tape-length=<媒體容量> 設置存放每體的容量,單位以1024 Bytes計算。
-m或--modification-time 還原文件時,不變更文件的更改時間。
-M或--multi-volume 在建立,還原備份文件或列出其中的內容時,采用多卷冊模式。
-N<日期格式>或--newer=<日期時間> 只將較指定日期更新的文件保存到備份文件裏。
-o或--old-archive或--portability 將資料寫入備份文件時使用V7格式。
-O或--stdout 把從備份文件裏還原的文件輸出到標準輸出設備。
-p或--same-permissions 用原來的文件權限還原文件。
-P或--absolute-names 文件名使用絕對名稱,不移除文件名稱前的"/"號。
-r或--append 新增文件到已存在的備份文件的結尾部分。
-R或--block-number 列出每個信息在備份文件中的區塊編號。
-s或--same-order 還原文件的順序和備份文件內的存放順序相同。
-S或--sparse 倘若一個文件內含大量的連續0字節,則將此文件存成稀疏文件。
-t或--list 列出備份文件的內容。
-T<範本文件>或--files-from=<範本文件> 指定範本文件,其內含有一個或多個範本樣式,讓tar解開或建立符合設置條件的文件。
-u或--update 僅置換較備份文件內的文件更新的文件。
-U或--unlink-first 解開壓縮文件還原文件之前,先解除文件的連接。
-v或--verbose 顯示指令執行過程。
-V<卷冊名稱>或--label=<卷冊名稱> 建立使用指定的卷冊名稱的備份文件。
-w或--interactive 遭遇問題時先詢問用戶。
-W或--verify 寫入備份文件後,確認文件正確無誤。
-x或--extract或--get 從備份文件中還原文件。
-X<範本文件>或--exclude-from=<範本文件> 指定範本文件,其內含有一個或多個範本樣式,讓ar排除符合設置條件的文件。
-z或--gzip或--ungzip 通過gzip指令處理備份文件。
-Z或--compress或--uncompress 通過compress指令處理備份文件。
-<設備編號><存儲密度> 設置備份用的外圍設備編號及存放數據的密度。
--after-date=<日期時間> 此參數的效果和指定"-N"參數相同。
--atime-preserve 不變更文件的存取時間。
--backup=<備份方式>或--backup 移除文件前先進行備份。
--checkpoint 讀取備份文件時列出目錄名稱。
--concatenate 此參數的效果和指定"-A"參數相同。
--confirmation 此參數的效果和指定"-w"參數相同。
--delete 從備份文件中刪除指定的文件。
--exclude=<範本樣式> 排除符合範本樣式的問家。
--group=<群組名稱> 把加入設備文件中的文件的所屬群組設成指定的群組。
--help 在線幫助。
--ignore-failed-read 忽略數據讀取錯誤,不中斷程序的執行。
--new-volume-script=<Script文件> 此參數的效果和指定"-F"參數相同。
--newer-mtime 只保存更改過的文件。
--no-recursion 不做遞歸處理,也就是指定目錄下的所有文件及子目錄不予處理。
--null 從null設備讀取文件名稱。
--numeric-owner 以用戶識別碼及群組識別碼取代用戶名稱和群組名稱。
--owner=<用戶名稱> 把加入備份文件中的文件的擁有者設成指定的用戶。
--posix 將數據寫入備份文件時使用POSIX格式。
--preserve 此參數的效果和指定"-ps"參數相同。
--preserve-order 此參數的效果和指定"-A"參數相同。
--preserve-permissions 此參數的效果和指定"-p"參數相同。
--record-size=<區塊數目> 此參數的效果和指定"-b"參數相同。
--recursive-unlink 解開壓縮文件還原目錄之前,先解除整個目錄下所有文件的連接。
--remove-files 文件加入備份文件後,就將其刪除。
--rsh-command=<執行指令> 設置要在遠端主機上執行的指令,以取代rsh指令。
--same-owner 嘗試以相同的文件擁有者還原文件。
--suffix=<備份字尾字符串> 移除文件前先行備份。
--totals 備份文件建立後,列出文件大小。
--use-compress-program=<執行指令> 通過指定的指令處理備份文件。
--version 顯示版本信息。
--volno-file=<編號文件> 使用指定文件內的編號取代預設的卷冊編號。

tar命令的實踐操作

範例1: 壓縮文件

[[email protected] ~]# mkdir /data
[[email protected] ~]# cd /data
[[email protected] /data]# touch {1..5}.txt
[[email protected] /data]# ls
1.txt  2.txt  3.txt  4.txt  5.txt
[[email protected] /data]# cd ..
[[email protected] /]# tar zcvf /opt/data.tar.gz ./data
./data/
./data/1.txt
./data/2.txt
./data/3.txt
./data/4.txt
./data/5.txt

範例2: 查看壓縮包裏的內容:-t

[[email protected] /]# tar tf /opt/data.tar.gz 
./data/
./data/1.txt
./data/2.txt
./data/3.txt
./data/4.txt
./data/5.txt

範例3: 解壓縮

[[email protected] /opt]# tar zxvf data.tar.gz 
./data/
./data/1.txt
./data/2.txt
./data/3.txt
./data/4.txt
./data/5.txt
[[email protected] /opt]# ls
data  data.tar.gz
[[email protected] /opt]# ls data
1.txt  2.txt  3.txt  4.txt  5.txt
[[email protected] /opt]# tar xf data.tar.gz 

範例3: 打包時指定目錄參數:-C

[[email protected] /opt]# tar xf data.tar.gz -C /tmp/
[[email protected] /opt]# ls /tmp/data
1.txt  2.txt  3.txt  4.txt  5.txt

範例4: 排除打包

[[email protected] ~]# cd /data
[[email protected] /data]# ls
1.txt  2.txt  3.txt  4.txt  5.txt
[[email protected] /data]# tar zcvf oldboy.tar.gz ./* --exclude=4.txt --exclude=5.txt
./1.txt
./2.txt
./3.txt
[[email protected] /data]# tar tf oldboy.tar.gz 
./1.txt
./2.txt
./3.txt
[[email protected] /data]# rm -f oldboy.tar.gz 
[[email protected] /data]# tar zcvf oldboy.tar.gz ./* --exclude={4,5}.txt
./1.txt
./2.txt
./3.txt
[[email protected] /data]# tar zcvf oldboy.tar.gz ./* --exclude={1..4}.txt
./5.txt
./oldboy.tar.gz

[[email protected] /data]# cat paichu.txt
1.txt
2.txt
3.txt
[[email protected] /data]# tar zcvfX oldboy.tar.gz paichu.txt ./*
./4.txt
./5.txt
./oldboy.tar.gz
./paichu.txt

2. unzip:解壓縮zip文件

unzip命令的功能說明

unzip 命令用於解壓縮 zip 文件,unzip.zip壓縮文件的解壓縮程序。

unzip命令的語法格式

unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s) ...] [-x xfile(s) ...] [-d exdir]
unzip [-cflptuvz][-agCjLMnoqsVX][-P <密碼>][.zip文件][文件][-d <目錄>][-x <文件>] 或 unzip [-Z]

unzip命令的常用參數說明:

unzip 參數很多,表1為 unzip 命令的參數及說明:

表1: unzip 命令的參數及說明

參數選項 解釋說明
-c 將解壓縮的結果顯示到屏幕上,並對字符做適當的轉換。
-f 更新現有的文件。
-l 顯示壓縮文件內所包含的文件。
-p 與-c參數類似,會將解壓縮的結果顯示到屏幕上,但不會執行任何的轉換。
-t 檢查壓縮文件是否正確。
-u 與-f參數類似,但是除了更新現有的文件外,也會將壓縮文件中的其他文件解壓縮到目錄中。
-v 執行是時顯示詳細的信息。
-z 僅顯示壓縮文件的備註文字。
-a 對文本文件進行必要的字符轉換。
-b 不要對文本文件進行字符轉換。
-C 壓縮文件中的文件名稱區分大小寫。
-j 不處理壓縮文件中原有的目錄路徑。
-L 將壓縮文件中的全部文件名改為小寫。
-M 將輸出結果送到more程序處理。
-n 解壓縮時不要覆蓋原有的文件。
-o 不必先詢問用戶,unzip執行後覆蓋原有文件。
-P<密碼> 使用zip的密碼選項。
-q 執行時不顯示任何信息。
-s 將文件名中的空白字符轉換為底線字符。
-V 保留VMS的文件版本信息。
- X 解壓縮時同時回存文件原來的UID/GID。
[.zip文件] 指定.zip壓縮文件。
[文件] 指定要處理.zip壓縮文件中的哪些文件。
-d<目錄> 指定文件解壓縮後所要存儲的目錄。
-x<文件> 指定不要處理.zip壓縮文件中的哪些文件。
-Z unzip -Z等於執行zipinfo指令。

unzip命令的實踐操作

範例1: 查看壓縮文件中包含的文件


unzip -l abc.zip Archive: abc.zip
 Length   Date  Time  Name--------  ----  ----  ----
  94618 05-21-10 20:44  a11.jpg
  202001 05-21-10 20:44  a22.jpg
    16 05-22-10 15:01  11.txt
  46468 05-23-10 10:30  w456.JPG
  140085 03-14-10 21:49  my.asp
--------          -------
  483188          5 files

範例2: -v 參數用於查看壓縮文件目錄信息,但是不解壓該文件。

unzip -v abc.zip 
Archive: abc.zip
Length  Method  Size Ratio  Date  Time  CRC-32  Name
-------- ------ ------- -----  ----  ----  ------  ----
  94618 Defl:N  93353  1% 05-21-10 20:44 9e661437 a11.jpg
 202001 Defl:N  201833  0% 05-21-10 20:44 1da462eb a22.jpg
   16 Stored    16  0% 05-22-10 15:01 ae8a9910 ? +-|¥+-? (11).txt
  46468 Defl:N  39997 14% 05-23-10 10:30 962861f2 w456.JPG
 140085 Defl:N  36765 74% 03-14-10 21:49 836fcc3f my.asp
--------     ------- ---              -------
 483188      371964 23%              5 files

今天就寫到這裏,有什麽疑問或出現什麽錯誤,隨時歡迎大神們發表評論指點迷津

Shell命令-文件壓縮解壓縮之tar、unzip