linux下tar包追加与其他压缩追加方式
前提:公司日志文件每天產(chǎn)生幾十G又不能刪,而且要保存半年;那就只能壓縮,但文件是每天一加的,那就只能在壓縮文件中添加/更新文件?
目錄
1.tar包解決的問(wèn)題
2.Linux zip命令 語(yǔ)法
zip命令 示例
3.指定添加刪除釋放
1.tar包解決的問(wèn)題
Linux系統(tǒng)下tar命令參數(shù)詳解:
-c :建立一個(gè)壓縮文件的參數(shù)指令(create 的意思);
-x :解開(kāi)一個(gè)壓縮文件的參數(shù)指令;
-t :查看 tarfile 里面的文件;
-z :是否同時(shí)具有 gzip 的屬性?亦即是否需要用 gzip 壓縮;
-j :是否同時(shí)具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮;
-v :壓縮的過(guò)程中顯示文件!這個(gè)常用,但不建議用在背景執(zhí)行過(guò)程;
-f :使用檔名,請(qǐng)留意,在 f 之后要立即接檔名,不要再加參數(shù);
-p :使用原文件的原來(lái)屬性(屬性不會(huì)依據(jù)使用者而變);
-N :比后面接的日期(yyyy/mm/dd)還要新的才會(huì)被打包進(jìn)新建的文件中;
--exclude FILE:在壓縮的過(guò)程中,不要將 FILE 打包。
Linux系統(tǒng)下操作tar壓縮包,需要用tar命令,追加參數(shù)用“-r"選項(xiàng),取出參數(shù)用“-x”選項(xiàng),案例如下:
如果有一個(gè)包 a.tar.gz?,需要把b.txt追加進(jìn)去,就用命令:
tar -rvf a.tar.gz b.txt從tar包zhidao.tar.bz2中取出file2.txt則用:
tar??-xvf??a.tar.gz?b.txt#tar?-xvf a.tar.gz?,后面不跟文件名,就會(huì)解壓整個(gè)zhidao.tar.bz2包。?注:該追加參數(shù)必須是 “ -cvf ” ,才能用-rvf參數(shù)才生效;
否則報(bào)錯(cuò)如下:
~]# tar -rcf a.tar.gz b.txt tar: You may not specify more than one `-Acdtrux' or `--test-label' option Try `tar --help' or `tar --usage' for more information.~]# tar -rzcf a.tar.gz b.txt tar: You may not specify more than one `-Acdtrux' or `--test-label' option Try `tar --help' or `tar --usage' for more information.~]# tar -zrcf a.tar.gz b.txt tar: You may not specify more than one `-Acdtrux' or `--test-label' option Try `tar --help' or `tar --usage' for more information.# 如果用這種方法相當(dāng)與覆蓋壓縮了 ~]# tar -zcvf a.tar.gz b.txt b.txt注:該方法不能達(dá)到要求,我發(fā)現(xiàn)他只是歸檔,而不壓縮,如果使用如下類似的方法,則意義不大;
gunzip archive.tar.gz #解壓 tar rf archive.tar data/data/com.myapp.backup/./files/settings.txt #歸檔 gzip archive.tar #再壓縮既然tar不行,那就用其他壓縮命令
壓縮命令大全:Linux tar命令|極客筆記https://deepinout.com/linux-cmd/linux-archiving-and-compression-related-cmd/
2.Linux zip命令 語(yǔ)法
zip [選項(xiàng)] [壓縮文件]# 使用unzip命令可以解壓縮zip文件。命令中各選項(xiàng)的含義如下表所示。?
?
- -A 調(diào)整可執(zhí)行的自動(dòng)解壓縮文件。
- -b<工作目錄> 指定暫時(shí)存放文件的目錄。
- -c 替每個(gè)被壓縮的文件加上注釋。
- -d 從壓縮文件內(nèi)刪除指定的文件。
- -D 壓縮文件內(nèi)不建立目錄名稱。
- -f 更新現(xiàn)有的文件。
- -F 嘗試修復(fù)已損壞的壓縮文件。
- -g 將文件壓縮后附加在既有的壓縮文件之后,而非另行建立新的壓縮文件。
- -h 在線幫助。
- -i<范本樣式> 只壓縮符合條件的文件。
- -j 只保存文件名稱及其內(nèi)容,而不存放任何目錄名稱。
- -J 刪除壓縮文件前面不必要的數(shù)據(jù)。
- -k 使用MS-DOS兼容格式的文件名稱。
- -l 壓縮文件時(shí),把LF字符置換成LF+CR字符。
- -ll 壓縮文件時(shí),把LF+CR字符置換成LF字符。
- -L 顯示版權(quán)信息。
- -m 將文件壓縮并加入壓縮文件后,刪除原始文件,即把文件移到壓縮文件中。
- -n<字尾字符串> 不壓縮具有特定字尾字符串的文件。
- -o 以壓縮文件內(nèi)擁有最新更改時(shí)間的文件為準(zhǔn),將壓縮文件的更改時(shí)間設(shè)成和該文件相同。
- -q 不顯示指令執(zhí)行過(guò)程。
- -r 遞歸處理,將指定目錄下的所有文件和子目錄一并處理。
- -S 包含系統(tǒng)和隱藏文件。
- -t<日期時(shí)間> 把壓縮文件的日期設(shè)成指定的日期。
- -T 檢查備份文件內(nèi)的每個(gè)文件是否正確無(wú)誤。
- -u 與 -f 參數(shù)類似,但是除了更新現(xiàn)有的文件外,也會(huì)將壓縮文件中的其他文件解壓縮到目錄中。
- -v 顯示指令執(zhí)行過(guò)程或顯示版本信息。
- -V 保存VMS操作系統(tǒng)的文件屬性。
- -w 在文件名稱里假如版本編號(hào),本參數(shù)僅在VMS操作系統(tǒng)下有效。
- -x<范本樣式> 壓縮時(shí)排除符合條件的文件。
- -X 不保存額外的文件屬性。
- -y 直接保存符號(hào)連接,而非該連接所指向的文件,本參數(shù)僅在UNIX之類的系統(tǒng)下有效。
- -z 替壓縮文件加上注釋。
- -$ 保存第一個(gè)被壓縮文件所在磁盤(pán)的卷冊(cè)名稱。
- -<壓縮效率> 壓縮效率是一個(gè)介于1-9的數(shù)值。
zip命令 示例
將/root/a.txt文件壓縮成/root/a.zip文件
~]# zip /root/a.zip /root/a.txt adding: /root/a (stored 0%)將/root/a文件壓縮成/root/a.zip文件,并指定加密密碼
~]# zip -e /root/a.zip /root/a.txt Enter password: //在這里輸入壓縮加密密碼 Verify password: //再一次輸入壓縮加密密碼adding: root/a (stored 0%)測(cè)試壓縮文件/root/a.zip的完整性
~]# zip -T /root/a.zip test of /root/a.zip OK將/root/a.txt文件壓縮成/root/a.zip文件,并且添加一行注釋
~]# zip -c /root/a.zip /root/a.txtadding: root/a (stored 0%) Enter comment for root/a: zip file //在這里添加注釋信息更新/root/a.zip壓縮文件,添加/root/b.txt文件
[root@rhel ~]# zip -u /root/a.zip /root/b adding: root/b (stored 0%)壓縮/root/a文件,生成的壓縮文件設(shè)置成和/root/a文件一樣的時(shí)間
[root@rhel ~]# zip -o /root/a.zip /root/a.txt adding: root/a (stored 0%)將/home目錄壓縮成/root/home.zip文件
~]# zip -r /root/home.zip /home壓縮/boot目錄,但是排除/boot/grub/grub.conf文件
~]# zip -r /root/boot.zip /boot -x /boot/grub/grub.conf adding: boot/ (stored 0%) adding: boot/config-2.6.32-358.el6.x86_64 (deflated 75%) adding: boot/vmlinuz-2.6.32-358.el6.x86_64 (deflated 1%) adding: boot/lost+found/ (stored 0%) adding: boot/.vmlinuz-2.6.32-358.el6.x86_64.hmac (deflated 22%) adding: boot/System.map-2.6.32-358.el6.x86_64 (deflated 79%) adding: boot/efi/ (stored 0%) adding: boot/efi/EFI/ (stored 0%) adding: boot/efi/EFI/redhat/ (stored 0%) adding: boot/efi/EFI/redhat/grub.efi (deflated 60%) adding: boot/initramfs-2.6.32-358.el6.x86_64.img (deflated 1%) adding: boot/symvers-2.6.32-358.el6.x86_64.gz (deflated 0%) adding: boot/grub/ (stored 0%) adding: boot/grub/splash.xpm.gz (deflated 88%) adding: boot/grub/fat_stage1_5 (deflated 38%) adding: boot/grub/ffs_stage1_5 (deflated 39%) adding: boot/grub/stage1 (deflated 17%) adding: boot/grub/iso9660_stage1_5 (deflated 38%) adding: boot/grub/e2fs_stage1_5 (deflated 40%) adding: boot/grub/jfs_stage1_5 (deflated 40%) adding: boot/grub/device.map (deflated 5%) adding: boot/grub/stage2 (deflated 45%) adding: boot/grub/ufs2_stage1_5 (deflated 39%) adding: boot/grub/vstafs_stage1_5 (deflated 39%) adding: boot/grub/reiserfs_stage1_5 (deflated 40%) adding: boot/grub/minix_stage1_5 (deflated 40%) adding: boot/grub/menu.lst (deflated 36%) adding: boot/grub/xfs_stage1_5 (deflated 39%) 查看壓縮包但不解壓 ~]# unzip -v a.zip Archive: a.zipLength Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 151005959 Defl:N 14387536 91% 12-02-2021 17:10 000983ad a.txt 127489195 Defl:N 11942580 91% 12-02-2021 17:13 5bb5d63f b.txt -------- ------- --- ------- 278495154 26330116 91% 2 files測(cè)試文件內(nèi)的文件是否正常
~]# unzip -t a.zip Archive: a.ziptesting: a.txt OKtesting: b.txt OK No errors detected in compressed data of a.zip.在壓縮文件中刪除指定文件
~]# zip a.zip -d b.txt deleting: b.txt~]# unzip -v a.zip Archive: a.zipLength Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 151005959 Defl:N 14387536 91% 12-02-2021 17:10 000983ad a.txt -------- ------- --- ------- 151005959 14387536 91% 1 file指定解壓路經(jīng)
~]$ unzip -d /root a.zip Archive: a.zipinflating: /root/a.txt ~]# ls a.txt3.指定添加刪除釋放
最后關(guān)鍵就是我們此次的需求
#指追添加 ~]# zip -g a.zip b.txt adding: b.txt (deflated 91%)~]# unzip -v a.zip Archive: a.zipLength Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 151005959 Defl:N 14387536 91% 12-02-2021 17:10 000983ad a.txt 127489195 Defl:N 11942580 91% 12-02-2021 17:13 5bb5d63f b.txt -------- ------- --- ------- 278495154 26330116 91% #指定刪除 ~]# zip a.zip -d b.txt deleting: b.txt~]# unzip -v a.zip Archive: a.zipLength Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 151005959 Defl:N 14387536 91% 12-02-2021 17:10 000983ad a.txt -------- ------- --- ------- 151005959 14387536 91% 1 file#指定解壓 ~]# unzip -d /root a.zip b.txt Archive: a.zipinflating: /root/b.txt ~]# ls /root b.txt總結(jié)
以上是生活随笔為你收集整理的linux下tar包追加与其他压缩追加方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Yum卸载软件并删除依赖,下载离线rpm
- 下一篇: linux下前一天时间格式