Shell命令-文件壓縮解壓縮之tar、unzip
阿新 • • 發佈:2019-04-28
用戶名 說明 打包壓縮 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