linux下tar包追加与其他压缩追加方式
前提:公司日志文件每天产生几十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包追加与其他压缩追加方式相关推荐
- linux下tar包安装sudo命令,ubuntu12.04LTS安装gv-412-Linux-x86.tar.gz方法
折腾了2天多,终于装好了. 操作系统 Ubuntu 12.04 LTS (在win7系统下用ubuntu的windows安装工具安装的,有点类似双系统) gaussian view程序 gv-412- ...
- Linux 下 *.tar.gz 文件解压 压缩命令
以下介绍如何压缩与解压 .tar.gz 格式的文件 1.压缩命令: 命令格式: tar -zcvf 压缩文件名.tar.gz 可先切换到当前目录下,压缩文件名和被压缩文件名都可加入路径. 2.解压缩命 ...
- linux为什么用tar压缩,linux下tar压缩和解压命令用法详解
linux下tar压缩和解压命令用法详解 2017-03-25 14:06 分享人:老牛 将/usr/local/test目录下所有文件仅打包,不压缩到 /usr/local/auto_bak/目下 ...
- Linux下tar bz gz等压缩包的压缩和解压
Linux下tar bz gz等压缩包的压缩和解压 - 云+社区 - 腾讯云 Linux下用户经常需要备份计算机系统中的数据,为了节省存储空间,常常将备份文件进行压缩,本文是对压缩和解压命令的大致总结 ...
- linux中.sql.gz文件解压,linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
本文介绍了linux下的压缩程式tar.gzip.gunzip.bzip2.bunzip2.compress .uncompress. zip. unzip.rar.unrar等程式,以及如何使用它们 ...
- Linux下tar解压到当前目录,zip压缩,tar压缩,tar解压
Linux下tar解压tar.gz文件到当前目录 很多时候我们需要把文件解压到当前目录,命令如下: tar -zxvf vscode-server-linux-x64.tar.gz -C ./ 有时候 ...
- linux下tar gz bz2 tgz z等众多压缩文件的解压方法
对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕.别个不说,单单就压缩文件为例,我们知道在Windows下最常见 的压缩文件就只有两种,一是,zip,另一个是.rar. ...
- 压缩加压 linux 命令,linux下tar加压、压缩命令
linux下tar加压.压缩命令 参数: -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 注意:在参数下 ...
- LINUX下tar.gz包的安装方法
LINUX下tar.gz包的安装方法 在tar.gz的东西不多了---- ======================================== 大多以tar.gz 和tar.bz2打包软件 ...
最新文章
- 从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法...
- 【Java Web开发指南】ELJSTL笔记
- Entity Framework中使用IEnumerableT、IQueryableT及IListT的区别
- python七巧板三角形_用七巧板拼出14种三角形,这才是图形认知的神器!
- ggforce|绘制区域轮廓-区域放大-寻找你的“onepiece”
- tomcat有集成mysql嘛_jira+tomcat+mysql的集成
- CSDN 2020博客之星投票进行中:送你喜爱的博主C位出道!
- python和nodejs哪个写爬虫好_PythonNodejs 哪个比较适合写爬虫
- [2]2019-CVPR-Learning Loss for Active Learning 论文笔记
- 我的大学之路---《大学之路》读后感
- UVa12304(计算几何中圆的基本操作)
- 一个 Gitlab 帐号无法访问文件、克隆项目问题的解决
- Python 程序员需要知道的 30 个技巧(转载)
- python 空间法向量可视化_利用空间法向量求二面角具体方法
- 小明的游戏(博弈论)
- 怎么看区块链正规项目与否,区块链投资前你应知道这三点
- 西电计算机c1-1测试题,【2017年整理】西电计算机接口习题2.doc
- 肝文-MySQL面试小抄
- 继续读书 — 《人性的弱点》
- Solo博客静态部署到码云gitee —— 全网最详细系列
热门文章
- Oracle编程入门经典 第11章 过程、函数和程序包
- 数字图像处理:第八章 形态学运算
- Python基础教程(十三):JSON、练习题100题
- Android组件化专题 - 组件化配置
- CSS常用样式及示例
- 4.mysql数据库创建,表中创建模具模板脚本,mysql_SQL99标准连接查询(恩,外部连接,全外连接,交叉连接)...
- ADO.NET Entity Framework -Code Fisrt (二)
- windows 7 安装及.net开发环境搭建
- 关于对cross-browser支持的一些看法
- 【机器学习】最容易实现的基于OpenCV的人脸检测代码、检测器及检测效果