前提:公司日志文件每天产生几十G又不能删,而且要保存半年;那就只能压缩,但文件是每天一加的,那就只能在压缩文件中添加/更新文件?

目录

1.tar包解决的问题

2.Linux zip命令 语法

zip命令 示例

3.指定添加删除释放


1.tar包解决的问题

Linux系统下tar命令参数详解:

-c :建立一个压缩文件的参数指令(create 的意思);

-x :解开一个压缩文件的参数指令;

-t :查看 tarfile 里面的文件;

-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩;

-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩;

-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程;

-f :使用档名,请留意,在 f 之后要立即接档名,不要再加参数;

-p :使用原文件的原来属性(属性不会依据使用者而变);

-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中;

--exclude FILE:在压缩的过程中,不要将 FILE 打包。

Linux系统下操作tar压缩包,需要用tar命令,追加参数用“-r"选项,取出参数用“-x”选项,案例如下:

如果有一个包 a.tar.gz ,需要把b.txt追加进去,就用命令:

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 ,后面不跟文件名,就会解压整个zhidao.tar.bz2包。

注:该追加参数必须是 “ -cvf ” ,才能用-rvf参数才生效;

否则报错如下:

~]# 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.# 如果用这种方法相当与覆盖压缩了
~]# tar -zcvf a.tar.gz b.txt
b.txt

注:该方法不能达到要求,我发现他只是归档,而不压缩,如果使用如下类似的方法,则意义不大;

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命令 语法

zip [选项] [压缩文件]# 使用unzip命令可以解压缩zip文件。

命令中各选项的含义如下表所示。

  • -A 调整可执行的自动解压缩文件。
  • -b<工作目录> 指定暂时存放文件的目录。
  • -c 替每个被压缩的文件加上注释。
  • -d 从压缩文件内删除指定的文件。
  • -D 压缩文件内不建立目录名称。
  • -f 更新现有的文件。
  • -F 尝试修复已损坏的压缩文件。
  • -g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
  • -h 在线帮助。
  • -i<范本样式> 只压缩符合条件的文件。
  • -j 只保存文件名称及其内容,而不存放任何目录名称。
  • -J 删除压缩文件前面不必要的数据。
  • -k 使用MS-DOS兼容格式的文件名称。
  • -l 压缩文件时,把LF字符置换成LF+CR字符。
  • -ll 压缩文件时,把LF+CR字符置换成LF字符。
  • -L 显示版权信息。
  • -m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
  • -n<字尾字符串> 不压缩具有特定字尾字符串的文件。
  • -o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
  • -q 不显示指令执行过程。
  • -r 递归处理,将指定目录下的所有文件和子目录一并处理。
  • -S 包含系统和隐藏文件。
  • -t<日期时间> 把压缩文件的日期设成指定的日期。
  • -T 检查备份文件内的每个文件是否正确无误。
  • -u 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
  • -v 显示指令执行过程或显示版本信息。
  • -V 保存VMS操作系统的文件属性。
  • -w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
  • -x<范本样式> 压缩时排除符合条件的文件。
  • -X 不保存额外的文件属性。
  • -y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
  • -z 替压缩文件加上注释。
  • -$ 保存第一个被压缩文件所在磁盘的卷册名称。
  • -<压缩效率> 压缩效率是一个介于1-9的数值。

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%)

测试压缩文件/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文件,生成的压缩文件设置成和/root/a文件一样的时间

[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

测试文件内的文件是否正常

~]# 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

指定解压路经

~]$ unzip -d /root a.zip
Archive:  a.zipinflating: /root/a.txt             ~]# ls
a.txt

3.指定添加删除释放

最后关键就是我们此次的需求

#指追添加
~]# 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

linux下tar包追加与其他压缩追加方式相关推荐

  1. linux下tar包安装sudo命令,ubuntu12.04LTS安装gv-412-Linux-x86.tar.gz方法

    折腾了2天多,终于装好了. 操作系统 Ubuntu 12.04 LTS (在win7系统下用ubuntu的windows安装工具安装的,有点类似双系统) gaussian view程序 gv-412- ...

  2. Linux 下 *.tar.gz 文件解压 压缩命令

    以下介绍如何压缩与解压 .tar.gz 格式的文件 1.压缩命令: 命令格式: tar -zcvf 压缩文件名.tar.gz 可先切换到当前目录下,压缩文件名和被压缩文件名都可加入路径. 2.解压缩命 ...

  3. linux为什么用tar压缩,linux下tar压缩和解压命令用法详解

    linux下tar压缩和解压命令用法详解 2017-03-25 14:06 分享人:老牛 将/usr/local/test目录下所有文件仅打包,不压缩到 /usr/local/auto_bak/目下 ...

  4. Linux下tar bz gz等压缩包的压缩和解压

    Linux下tar bz gz等压缩包的压缩和解压 - 云+社区 - 腾讯云 Linux下用户经常需要备份计算机系统中的数据,为了节省存储空间,常常将备份文件进行压缩,本文是对压缩和解压命令的大致总结 ...

  5. linux中.sql.gz文件解压,linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结

    本文介绍了linux下的压缩程式tar.gzip.gunzip.bzip2.bunzip2.compress .uncompress. zip. unzip.rar.unrar等程式,以及如何使用它们 ...

  6. Linux下tar解压到当前目录,zip压缩,tar压缩,tar解压

    Linux下tar解压tar.gz文件到当前目录 很多时候我们需要把文件解压到当前目录,命令如下: tar -zxvf vscode-server-linux-x64.tar.gz -C ./ 有时候 ...

  7. linux下tar gz bz2 tgz z等众多压缩文件的解压方法

    对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕.别个不说,单单就压缩文件为例,我们知道在Windows下最常见 的压缩文件就只有两种,一是,zip,另一个是.rar. ...

  8. 压缩加压 linux 命令,linux下tar加压、压缩命令

    linux下tar加压.压缩命令 参数: -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 注意:在参数下 ...

  9. LINUX下tar.gz包的安装方法

    LINUX下tar.gz包的安装方法 在tar.gz的东西不多了---- ======================================== 大多以tar.gz 和tar.bz2打包软件 ...

最新文章

  1. 从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法...
  2. 【Java Web开发指南】ELJSTL笔记
  3. Entity Framework中使用IEnumerableT、IQueryableT及IListT的区别
  4. python七巧板三角形_用七巧板拼出14种三角形,这才是图形认知的神器!
  5. ggforce|绘制区域轮廓-区域放大-寻找你的“onepiece”
  6. tomcat有集成mysql嘛_jira+tomcat+mysql的集成
  7. CSDN 2020博客之星投票进行中:送你喜爱的博主C位出道!
  8. python和nodejs哪个写爬虫好_PythonNodejs 哪个比较适合写爬虫
  9. [2]2019-CVPR-Learning Loss for Active Learning 论文笔记
  10. 我的大学之路---《大学之路》读后感
  11. UVa12304(计算几何中圆的基本操作)
  12. 一个 Gitlab 帐号无法访问文件、克隆项目问题的解决
  13. Python 程序员需要知道的 30 个技巧(转载)
  14. python 空间法向量可视化_利用空间法向量求二面角具体方法
  15. 小明的游戏(博弈论)
  16. 怎么看区块链正规项目与否,区块链投资前你应知道这三点
  17. 西电计算机c1-1测试题,【2017年整理】西电计算机接口习题2.doc
  18. 肝文-MySQL面试小抄
  19. 继续读书 — 《人性的弱点》
  20. Solo博客静态部署到码云gitee —— 全网最详细系列

热门文章

  1. Oracle编程入门经典 第11章 过程、函数和程序包
  2. 数字图像处理:第八章 形态学运算
  3. Python基础教程(十三):JSON、练习题100题
  4. Android组件化专题 - 组件化配置
  5. CSS常用样式及示例
  6. 4.mysql数据库创建,表中创建模具模板脚本,mysql_SQL99标准连接查询(恩,外部连接,全外连接,交叉连接)...
  7. ADO.NET Entity Framework -Code Fisrt (二)
  8. windows 7 安装及.net开发环境搭建
  9. 关于对cross-browser支持的一些看法
  10. 【机器学习】最容易实现的基于OpenCV的人脸检测代码、检测器及检测效果