Linux下的tar归档及解压缩功能详解
Linux下的tar歸檔及解壓縮功能詳解
- 一、Linux下解壓縮工具
- 二、gzip工具的使用方法
- 三、其他解壓縮工具
一、Linux下解壓縮工具
二、gzip工具的使用方法
三、其他解壓縮工具
一、Linux下解壓縮工具
1.tar命令
Unix和類Unix系統(tǒng)上的壓縮打包工具,可以將多個(gè)文件合并為一個(gè)文件,打包后的文件后綴亦為“tar”。tar文件格式已經(jīng)成為POSIX標(biāo)準(zhǔn),最初是POSIX.1-1988,當(dāng)前是POSIX.1-2001。本程序最初的設(shè)計(jì)目的是將文件備份到磁帶上(tape archive),因而得名tar。
tar命令是Unix/Linux系統(tǒng)中備份文件的可靠方法,幾乎可以工作于任何環(huán)境中,它的使用權(quán)限是所有用戶。最常用的打包命令是 tar,使用 tar 程序打出來的包我們常稱為 tar 包,tar 包文件的命令通常都是以 .tar 結(jié)尾的。生成 tar 包后,就可以用其它的程序來進(jìn)行壓縮了,所以首先就來講講 tar 命令的基本用法。
2.tar的語法及參數(shù)
參數(shù):-A或--catenate 新增文件到已存在的備份文件。 -b<區(qū)塊數(shù)目>或--blocking-factor=<區(qū)塊數(shù)目> 設(shè)置每筆記錄的區(qū)塊數(shù)目,每個(gè)區(qū)塊大小為12Bytes。 -B或--read-full-records 讀取數(shù)據(jù)時(shí)重設(shè)區(qū)塊大小。 -c或--create 建立新的備份文件。 -C<目的目錄>或--directory=<目的目錄> 切換到指定的目錄。 -d或--diff或--compare 對比備份文件內(nèi)和文件系統(tǒng)上的文件的差異。 -f<備份文件>或--file=<備份文件> 指定備份文件。 -F<Script文件>或--info-script=<Script文件> 每次更換磁帶時(shí),就執(zhí)行指定的Script文件。 -g或--listed-incremental 處理GNU格式的大量備份。 -G或--incremental 處理舊的GNU格式的大量備份。 -h或--dereference 不建立符號連接,直接復(fù)制該連接所指向的原始文件。 -i或--ignore-zeros 忽略備份文件中的0 Byte區(qū)塊,也就是EOF。 -k或--keep-old-files 解開備份文件時(shí),不覆蓋已有的文件。 -K<文件>或--starting-file=<文件> 從指定的文件開始還原。 -l或--one-file-system 復(fù)制的文件或目錄存放的文件系統(tǒng),必須與tar指令執(zhí)行時(shí)所處的文件系統(tǒng)相同,否則不予復(fù)制。 -L<媒體容量>或-tape-length=<媒體容量> 設(shè)置存放每體的容量,單位以1024 Bytes計(jì)算。 -m或--modification-time 還原文件時(shí),不變更文件的更改時(shí)間。 -M或--multi-volume 在建立,還原備份文件或列出其中的內(nèi)容時(shí),采用多卷冊模式。 -N<日期格式>或--newer=<日期時(shí)間> 只將較指定日期更新的文件保存到備份文件里。 -o或--old-archive或--portability 將資料寫入備份文件時(shí)使用V7格式。 -O或--stdout 把從備份文件里還原的文件輸出到標(biāo)準(zhǔn)輸出設(shè)備。 -p或--same-permissions 用原來的文件權(quán)限還原文件。 -P或--absolute-names 文件名使用絕對名稱,不移除文件名稱前的"/"號。 -r或--append 新增文件到已存在的備份文件的結(jié)尾部分。 -R或--block-number 列出每個(gè)信息在備份文件中的區(qū)塊編號。 -s或--same-order 還原文件的順序和備份文件內(nèi)的存放順序相同。 -S或--sparse 倘若一個(gè)文件內(nèi)含大量的連續(xù)0字節(jié),則將此文件存成稀疏文件。 -t或--list 列出備份文件的內(nèi)容。 -T<范本文件>或--files-from=<范本文件> 指定范本文件,其內(nèi)含有一個(gè)或多個(gè)范本樣式,讓tar解開或建立符合設(shè)置條件的文件。 -u或--update 僅置換較備份文件內(nèi)的文件更新的文件。 -U或--unlink-first 解開壓縮文件還原文件之前,先解除文件的連接。 -v或--verbose 顯示指令執(zhí)行過程。 -V<卷冊名稱>或--label=<卷冊名稱> 建立使用指定的卷冊名稱的備份文件。 -w或--interactive 遭遇問題時(shí)先詢問用戶。 -W或--verify 寫入備份文件后,確認(rèn)文件正確無誤。 -x或--extract或--get 從備份文件中還原文件。 -X<范本文件>或--exclude-from=<范本文件> 指定范本文件,其內(nèi)含有一個(gè)或多個(gè)范本樣式,讓ar排除符合設(shè)置條件的文件。 -z或--gzip或--ungzip 通過gzip指令處理備份文件。 -Z或--compress或--uncompress 通過compress指令處理備份文件。 -<設(shè)備編號><存儲(chǔ)密度> 設(shè)置備份用的外圍設(shè)備編號及存放數(shù)據(jù)的密度。 --after-date=<日期時(shí)間> 此參數(shù)的效果和指定"-N"參數(shù)相同。 --atime-preserve 不變更文件的存取時(shí)間。 --backup=<備份方式>或--backup 移除文件前先進(jìn)行備份。 --checkpoint 讀取備份文件時(shí)列出目錄名稱。 --concatenate 此參數(shù)的效果和指定"-A"參數(shù)相同。 --confirmation 此參數(shù)的效果和指定"-w"參數(shù)相同。 --delete 從備份文件中刪除指定的文件。 --exclude=<范本樣式> 排除符合范本樣式的文件。 --group=<群組名稱> 把加入設(shè)備文件中的文件的所屬群組設(shè)成指定的群組。 --help 在線幫助。 --ignore-failed-read 忽略數(shù)據(jù)讀取錯(cuò)誤,不中斷程序的執(zhí)行。 --new-volume-script=<Script文件> 此參數(shù)的效果和指定"-F"參數(shù)相同。 --newer-mtime 只保存更改過的文件。 --no-recursion 不做遞歸處理,也就是指定目錄下的所有文件及子目錄不予處理。 --null 從null設(shè)備讀取文件名稱。 --numeric-owner 以用戶識別碼及群組識別碼取代用戶名稱和群組名稱。 --owner=<用戶名稱> 把加入備份文件中的文件的擁有者設(shè)成指定的用戶。 --posix 將數(shù)據(jù)寫入備份文件時(shí)使用POSIX格式。 --preserve 此參數(shù)的效果和指定"-ps"參數(shù)相同。 --preserve-order 此參數(shù)的效果和指定"-A"參數(shù)相同。 --preserve-permissions 此參數(shù)的效果和指定"-p"參數(shù)相同。 --record-size=<區(qū)塊數(shù)目> 此參數(shù)的效果和指定"-b"參數(shù)相同。 --recursive-unlink 解開壓縮文件還原目錄之前,先解除整個(gè)目錄下所有文件的連接。 --remove-files 文件加入備份文件后,就將其刪除。 --rsh-command=<執(zhí)行指令> 設(shè)置要在遠(yuǎn)端主機(jī)上執(zhí)行的指令,以取代rsh指令。 --same-owner 嘗試以相同的文件擁有者還原文件。 --suffix=<備份字尾字符串> 移除文件前先行備份。 --totals 備份文件建立后,列出文件大小。 --use-compress-program=<執(zhí)行指令> 通過指定的指令處理備份文件。 --version 顯示版本信息。 --volno-file=<編號文件> 使用指定文件內(nèi)的編號取代預(yù)設(shè)的卷冊編號。二、gzip工具的使用方法
1.查看當(dāng)前目錄下需要壓縮的文件
2.使用gzip歸檔壓縮文件
[root@control tmp]# tar -czf /tmp/test.tar.gz /data/tmp/* tar: Removing leading `/' from member names tar: Removing leading `/' from hard link targets root@control tmp]# ls /tmp test.tar.gz3.查看壓縮包內(nèi)容
[root@control tmp]# tar -tf /tmp/test.tar.gz data/tmp/file0.py data/tmp/file10.py data/tmp/file11.py data/tmp/file12.py data/tmp/file13.py data/tmp/file14.py data/tmp/file15.py data/tmp/file16.py data/tmp/file17.py data/tmp/file18.py data/tmp/file19.py data/tmp/file1.py data/tmp/file20.py data/tmp/file2.py data/tmp/file3.py data/tmp/file4.py data/tmp/file5.py data/tmp/file6.py data/tmp/file7.py data/tmp/file8.py data/tmp/file9.py4.查看是壓縮包信息
[root@control tmp]# [root@control tmp]# file /tmp/test.tar.gz /tmp/test.tar.gz: gzip compressed data, last modified: Fri Apr 30 11:09:35 2021, from Unix, original size 204805.解壓縮到目錄/root/test/下
[root@control tmp]# tar -xzf /tmp/test.tar.gz -C /root/test/ [root@control tmp]# ls /root/test/ data [root@control tmp]# ls /root/test/data/tmp/ file0.py file11.py file13.py file15.py file17.py file19.py file20.py file3.py file5.py file7.py file9.py file10.py file12.py file14.py file16.py file18.py file1.py file2.py file4.py file6.py file8.py三、其他解壓縮工具
1.bzip工具進(jìn)行歸檔解壓縮
[root@control tmp]# tar -cjf /tmp/test.tar.bz2 /data/tmp/ tar: Removing leading `/' from member names [root@control tmp]# ls /tmp test.tar.bz2 test.tar.gz [root@control tmp]# tar -xjf /tmp/test.tar.bz2 -C /data/tmp/ [root@control tmp]# tar -xjf /tmp/test.tar.bz2 -C /root/test/ [root@control tmp]# ls /root/test test/ test.txt [root@control tmp]# ls /root/test/data/tmp/ file0.py file11.py file13.py file15.py file17.py file19.py file20.py file3.py file5.py file7.py file9.py file10.py file12.py file14.py file16.py file18.py file1.py file2.py file4.py file6.py file8.py [root@control tmp]# [root@control tmp]# file /tmp/test.tar.bz2 /tmp/test.tar.bz2: bzip2 compressed data, block size = 900k2.直接使用bzip進(jìn)行解壓縮
[root@control tmp]# ls file0.py file11.py file13.py file15.py file17.py file19.py file20.py file3.py file5.py file7.py file9.py file10.py file12.py file14.py file16.py file18.py file1.py file2.py file4.py file6.py file8.py [root@control tmp]# gzip file1.py [root@control tmp]# ls file0.py file11.py file13.py file15.py file17.py file19.py file20.py file3.py file5.py file7.py file9.py file10.py file12.py file14.py file16.py file18.py file1.py.gz file2.py file4.py file6.py file8.py [root@control tmp]# gunzip file1.py.gz [root@control tmp]# ls file0.py file11.py file13.py file15.py file17.py file19.py file20.py file3.py file5.py file7.py file9.py file10.py file12.py file14.py file16.py file18.py file1.py file2.py file4.py file6.py file8.pygzip工具直接使用方法與bzip一樣
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Linux下的tar归档及解压缩功能详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下shell脚本之双色球摇号脚
- 下一篇: Linux下的shell脚本实战之用户创