linux每日命令(31):tar命令

阅读目录(Content)

  • 一.命令格式
  • 二. 命令功能
  • 三. 命令参数
    • 必要参数
    • 选择参数
  • 四. 常见解压、压缩命令
    • tar
    • .gz
    • .tar.gz 和 .tgz
    • .bz2
    • .tar.bz2
    • .bz
    • .tar.bz
    • .Z
    • .tar.Z
    • .zip
    • .rar
  • 五. 使用实例
    • 1:将文件全部打包成tar包
    • 2:查阅上述 tar包内有哪些文件
    • 3:将tar 包解压缩
    • 4:只解压tar包里的部分文件
    • 5:在文件夹当中,比某个日期新的文件才备份
    • 6:备份文件夹内容时排除部分文件

 

一.命令格式

tar [必要参数] [选择参数] [文件] 

 

二. 命令功能

用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的

 

三. 命令参数

必要参数

参数描述
-A或--catenate 新增压缩文件到已存在的压缩文件
-B或--read-full-records,读取数据时重设区块大小。
-c或--create,建立新的压缩文件
-d或-diff,记录文件的差别
-r或--append 新增文件到已存在的压缩文件的结尾部分
-u或--update 仅置换较压缩文件内的文件更新的文件
-x或--extrac,从压缩的文件中提取文件
-t或--list ,列出压缩文件的内容
-z或--gzip或--ungzip,通过gzip指令解压文件
-j通过bzip2指令解压文件
-p或--same-permissions 用原来的文件权限还原文件
-Z通过compress指令解压文件
-N<日期格式>或--newer=<日期时间> ,只将较指定日期更新的文件保存到备份文件里。
-v显示操作过程
-l文件系统边界设置
-k或--keep-old-files, 解压文件时,不覆盖已有的文件
-m或--modification-time ,解压文件时,不变更文件的更改时间
-W或--verify,压缩文件时,确认文件正确无误

选择参数

 

参数描述
-b设置区块数目
-C切换到指定目录
-f指定压缩文件
--help显示帮助信息
--version显示版本信息

四. 常见解压、压缩命令

tar

打包:tar cvf FileName.tar DirName (将目录Dirname及其下面的目录、文件打包成名为FileName.tar的包)
解包:tar xvf FileName.tar(注:tar是打包,不是压缩!)

 

.gz

压缩: gzip FileName
解压1: gunzip FileName.gz
解压2: gzip -d FileName.gz

 

.tar.gz 和 .tgz

压缩:tar zcvf FileName.tar.gz DirName
解压:tar zxvf FileName.tar.gz

 

.bz2

压缩: bzip2 -z FileName
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2

 

.tar.bz2

压缩:tar jcvf FileName.tar.bz2 DirName
解压:tar jxvf FileName.tar.bz2

 

.bz

解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz

 

.tar.bz

解压:tar jxvf FileName.tar.bz

 

.Z

压缩:compress FileName
解压:uncompress FileName.Z

 

.tar.Z

.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
解压:tar Zxvf FileName.tar.Z

 

.zip

压缩:zip FileName.zip DirName
解压:unzip FileName.zip

 

.rar

压缩:rar a FileName.rar DirName
解压:rar x FileName.rar

 

五. 使用实例

1:将文件全部打包成tar包

 命令:

tar -cvf log.tar 1.log 
tar -zcvf log.tar.gz 1.log
tar -jcvf log.tar.bz2 1.log 

输出:

[root@localhost test]# ll 1.log 
-rw-r--r-- 1 root root 3743 Nov 30 09:51 1.log
[root@localhost test]# tar -cvf log.tar 1.log 
1.log
[root@localhost test]# tar -zcvf log.tar.gz 1.log 
1.log
[root@localhost test]# tar -jcvf log.tar.bz2 1.log 
1.log
[root@localhost test]# ll *.tar*
-rw-r--r-- 1 root root 10240 Nov 30 09:53 log.tar
-rw-r--r-- 1 root root  1798 Nov 30 09:55 log.tar.bz2
-rw-r--r-- 1 root root  1816 Nov 30 09:54 log.tar.gz

说明:

tar -cvf log.tar 1.log 仅打包,不压缩!
tar -zcvf log.tar.gz 1.log 打包后,以 gzip 压缩
tar -jcvf log.tar.bz2 1.log 打包后,以 bzip2 压缩

在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar包; 如果加 j 参数,则以 .tar.bz2 来作为tar包名。

 

2:查阅上述 tar包内有哪些文件

 命令:

tar -ztvf log.tar.gz

输出:

[root@localhost test]# tar -ztvf log.tar.gz
-rw-r--r-- root/root      3743 2018-11-30 09:51 1.log

说明:

由于我们使用 gzip 压缩的log.tar.gz,所以要查阅log.tar.gz包内的文件时,就得要加上 z 这个参数了。

3:将tar 包解压缩

 命令:

tar -zxvf /home/hc/test/log.tar.gz 

输出:

[root@localhost test]# cd test2
[root@localhost test2]# ls
[root@localhost test2]# tar -zxvf /home/hc/test/log.tar.gz 
1.log
[root@localhost test2]# ls
1.log

说明:

在预设的情况下,我们可以将压缩档在任何地方解开的,比如此处就是在test2目录下解压了test目录下的log.tar.gz

4:只解压tar包里的部分文件

 命令:

tar -zxvf /home/hc/test/log123.tar.gz 2.log

输出:

[root@localhost test2]# cd ../test
[root@localhost test]# ls
1.log  2.log  3.log  log.tar  log.tar.bz2  log.tar.gz
[root@localhost test]# tar -zcvf log123.tar.gz 1.log 2.log 3.log 
1.log
2.log
3.log
[root@localhost test]# ll
total 36
-rw-r--r-- 1 root root  3743 Nov 30 09:51 1.log
-rw-r--r-- 1 root root  3743 Nov 30 09:51 2.log
-rw-r--r-- 1 root root  3743 Nov 30 09:51 3.log
-rw-r--r-- 1 root root  1943 Nov 30 10:07 log123.tar.gz
-rw-r--r-- 1 root root 10240 Nov 30 10:01 log.tar
-rw-r--r-- 1 root root  1810 Nov 30 10:01 log.tar.bz2
-rw-r--r-- 1 root root  1817 Nov 30 10:01 log.tar.gz
[root@localhost test]# cd ../test2
[root@localhost test2]# ls
1.log
[root@localhost test2]# tar -ztvf /home/hc/test/log123.tar.gz 
-rw-r--r-- root/root      3743 2018-11-30 09:51 1.log
-rw-r--r-- root/root      3743 2018-11-30 09:51 2.log
-rw-r--r-- root/root      3743 2018-11-30 09:51 3.log
[root@localhost test2]# tar -zxvf /home/hc/test/log123.tar.gz 2.log
2.log
[root@localhost test2]# ls
1.log  2.log

说明:
此处是只解压出了log123.tar.gz包里的2.log文件,我们可以通过 tar -ztvf 来查阅 tar 包内的文件名称

 

5:在文件夹当中,比某个日期新的文件才备份

 命令:

tar -N "2018/11/30" -zcvf log11.tar.gz .

输出:

[root@localhost test]# ll
total 0
-rw-r--r-- 1 root root 0 Nov 30 10:23 1.log
-rw-r--r-- 1 root root 0 Nov 30 10:23 2.log
-rw-r--r-- 1 root root 0 Nov 30 10:23 3.log
[root@localhost test]# tar -N "2018/11/30" -zcvf log11.tar.gz ./*
tar: Option --after-date: Treating date `2018/11/30' as 2018-11-30 00:00:00
./1.log
./2.log
./3.log
[root@localhost test]# tar -N "2018/12/30" -zcvf log12.tar.gz ./*
tar: Option --after-date: Treating date `2018/12/30' as 2018-12-30 00:00:00
tar: ./1.log: file is unchanged; not dumped
tar: ./2.log: file is unchanged; not dumped
tar: ./3.log: file is unchanged; not dumped
tar: ./log11.tar.gz: file is unchanged; not dumped
[root@localhost test]# ll
total 8
-rw-r--r-- 1 root root   0 Nov 30 10:23 1.log
-rw-r--r-- 1 root root   0 Nov 30 10:23 2.log
-rw-r--r-- 1 root root   0 Nov 30 10:23 3.log
-rw-r--r-- 1 root root 128 Nov 30 10:56 log11.tar.gz
-rw-r--r-- 1 root root  45 Nov 30 10:57 log12.tar.gz
[root@localhost test]# tar -tzvf log11.tar.gz 
-rw-r--r-- root/root         0 2018-11-30 10:23 ./1.log
-rw-r--r-- root/root         0 2018-11-30 10:23 ./2.log
-rw-r--r-- root/root         0 2018-11-30 10:23 ./3.log
[root@localhost test]# tar -tzvf log12.tar.gz 
[root@localhost test]# 

说明:
将当前目录下的更新时间比2018-11-30 00:00:00新的文件或目录进行压缩备份

6:备份文件夹内容时排除部分文件

命令:

tar --exclude ./log12.tar.gz  -zcvf test.tar.gz ./*

输出:

[root@localhost test]# ls
1.log  2.log  3.log  log11.tar.gz  log12.tar.gz
[root@localhost test]# tar --exclude ./log12.tar.gz  -zcvf test.tar.gz ./*
./1.log
./2.log
./3.log
./log11.tar.gz
[root@localhost test]# tar -tzvf test.tar.gz 
-rw-r--r-- root/root         0 2018-11-30 10:23 ./1.log
-rw-r--r-- root/root         0 2018-11-30 10:23 ./2.log
-rw-r--r-- root/root         0 2018-11-30 10:23 ./3.log
-rw-r--r-- root/root       128 2018-11-30 10:56 ./log11.tar.gz

说明:

备份压缩当前目录下除log12.tar.gz文件以外的所有文件或目录

 

转载于:https://www.cnblogs.com/zhongbokun/p/10281041.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文带你吃透BFC

文章目录面试高出场率什么是BFC触发BFC的条件BFC的约束规则BFC可以解决的问题面试高出场率 在前端的面试中&#xff0c;经常会遇到BFC的问题&#xff0c;比如&#xff1a;说说你对BFC的理解、你在项目中运用到的BFC、BFC是什么、BFC的作用是什么。。。。 很多同学很懵逼&…

基于Python语言使用RabbitMQ消息队列(一)

介绍 RabbitMQ 是一个消息中间人&#xff08;broker&#xff09;: 它接收并且发送消息. 你可以把它想象成一个邮局: 当你把想要寄出的信放到邮筒里时, 你可以确定邮递员会把信件送到收信人那里. 在这个比喻中, RabbitMQ 就是一个邮筒, 同时也是邮局和邮递员 . 和邮局的主要不同…

爆赞程序猿开发软件

VSCode 使用 IntelliSense 超越语法突出显示和自动完成&#xff0c;它提供基于变量类型、函数定义和导入模块的智能完成 直接从编辑器调试代码。启动或附加到您正在运行的应用程序并使用断点、调用堆栈和交互式控制台进行调试 与 Git 和其他 SCM 提供商合作从未如此简单。查…

如果你在北京失业了,别怕,记得去领这笔钱!最少2034元/月!

人在江湖飘&#xff0c;哪能不挨刀 公司倒闭&#xff0c;老板走人&#xff0c;公司裁人 …… 就要被迫失业了 别怕! 如果你在北京失业了 记得去领这笔钱——失业保险金 每月最多有2143元 虽然钱不多&#xff0c;但能解燃眉之急 帮助你度过困难日子 重点全程网上就能…

真实诠释程序员日常的二十四张图【你中了几个】

当你打开遗留代码时 扒下来项目后改了一行代码…… 程序员调试css样式的时候 当你的try catch 不起作用 产品经理对你说要兼容IE 没有ui给你提供大小设计的结果 没吃透需求直接开发的你 程序员修复bug的真实处境 当你开始使用库&#xff0c;但忘记阅读文档 产品经理告诉你这只是…

Git学习原版手稿

手稿诞生记 Git学习的时候难免会有遗忘然后往复学习查看的过程&#xff0c;所以就形成了这个学习的手稿&#xff0c;记录了Git使用过程中的大部分命令&#xff0c;今天在清理的时候偶然看到了这些记录&#xff0c;而且最近也在写Git的使用教程&#xff0c;大致的学习线路也是按…

程序员首选编程电脑【火爆来袭】

作为一名程序员肯定会常用到一些编程软件&#xff0c;所以需要设备的配置参数上不能太差&#xff0c;不仅是要以稳定强大输出为基本&#xff0c;内存、音响、续航等方面也不可或缺。 直奔主题 如果你手里资金到位&#xff0c;那必须整一步到位——MacBook 对于这款大佬型笔记本…

201671010456-张琼 实验十四 团队项目评审课程学习总结

博文简要信息表 项目内容这个作业属于哪个课程http://www.cnblogs.com/nwnu-daizh/这个作业的要求在哪里https://www.cnblogs.com/nwnu-daizh/p/11093584.html课程学习目标掌握软件项目评审会流程&#xff0c;反思总结课程学习内容。任务一 验收意见表GitHub仓库地址https://gi…

强大的APIClound云修复——告别繁琐的编译打包流程

小编接到一项目的二期开发任务&#xff0c;拉下代码开始熟悉大概的框架、技术、上线流程等前期工作&#xff0c;本app是通过vue技术进行开发&#xff0c;使用ui是 vant 库&#xff0c;打包上线则是使用的 APIClound 平台&#xff1b; 在我们的app上线后&#xff0c;如果我们改…

研究下贝塞尔曲线

今天研究了下贝塞尔曲线&#xff0c;感觉还是很有价值的。 这里贝塞尔曲线是几个用法&#xff1a; 1.模拟曲线拟合。将折线找一个平滑的方案获得曲线的效果。联想可以获知&#xff0c;可以作为工程设计的一种方式。 2.模拟抛物线和实际场景中的一些物理特性&#xff0c;即物理上…

你对ES6究竟了解多少?—— 有这一篇就够用了

1. ES6相关概念&#xff08;★★&#xff09; 1.1 什么是ES6 ES 的全称是 ECMAScript , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范。ES6 是ES2015以后的泛称 1.2 为什么使用 ES6 ? 每一次标准的诞生都意味着语言的完善&#xff0c;功能的加强。JavaScrip…

科创板基础知识

交易制度 1、上市前5个交易日不设将跌幅限制&#xff1b;其后涨跌幅限制为 20%&#xff1b; 2、单笔申报不小于 200股。 参考资料&#xff1a; 科创板图文解读 科创板投教长图文系列&#xff08;四&#xff09;&#xff1a;详解科创板股票交易的特别规定 上交所投教&#xff1a…

0_0 保留字

引自《 JavaScript 权威指南》2.4 / P28 ~ 29 保留字 部分 保留字 JavaScript 把一些标识符拿出来用作自己的关键字。因此&#xff0c;就不能再在程序中把这些关键字用作标识符了&#xff1a; 保留字 Part1.txt123456breakdelete functionreturntypeofcasedoifswitchvarc…

JavaScript 高级——详谈面向对象

1.面向过程与面向对象 1.1面向过程 面向过程就是分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步骤一步一步实现&#xff0c;使用的时候再一个一个的依次调用就可以了。 1.2面向对象 面向对象是把事务分解成为一个个对象&#xff0c;然后由对象之间分工与合作。…

UVa202Repeating Decimals (循环小数)

解答&#xff1a; 因为除数是固定的&#xff0c;所以只要判断被除数是否出现过即可。 #include<iostream> #include <cstdio> #include <cstring> using namespace std; int m,n,vis[5000],res[5000],temp[5000],num,t,x; int main() {while(scanf("%d%…

构造函数、原型、继承原来这么简单?来吧,深入浅出

构造函数 小编上篇博客中介绍到的通过关键字class方式定义类&#xff0c;然后根据类再创建对象的方式&#xff0c;是ES6中语法&#xff0c;现在很多浏览器对ES6的支持还不是很好&#xff0c;所以也要学习通过构造函数&#xff08;构建函数&#xff09;的方式创建对象 问&…

[网络流24题] 航空路线问题 (费用流)

洛谷传送门 LOJ传送门 这道题的图还挺好想的吧 反正都是无向边&#xff0c;起点走到终点再回到起点&#xff0c;就相当于从起点走$2$次到达终点&#xff0c;且这两次不经过相同的点&#xff0c;还要经过尽可能多的点 很经典的费用流建图 限制点通过次数->拆点连边&#xff0…

Go语言字符串和正则表达式

字符串相关方法 获取字符串长度 注意: Go语言编码方式是UTF-8,在UTF-8中一个汉字占3个字节package main import "fmt" func main() { str1 : "lnj" fmt.Println(len(str1)) // 3 str2 : "lnj" fmt.Println(len(str2)) // 12 } 如果字符串中包含中…

你疏漏的 JS 函数硬核知识?这里帮你总结了

重点 更多前端知识 诚邀各位前端从事者爱好者加入前端大佬技术交流社区&#xff0c;本社区主要分享技术栈、个人心得、技术交流、问题解惑等前端体系交流 点击下方文字加入 前端大佬技术交流社区 1. 函数的定义和调用 1.1 函数的定义方式 方式1 函数声明方式 function 关键…

7 月 1 日

7 月 1 日 今日内容 1.计算机基础知识 2.python简介 3.快速入门 昨日回顾 无内容详细 1.计算机基础知识 输入输出设备 CPU 硬盘 电源 中央处理器 处理各种数据 相当于人的大脑 内存 存储数据 硬盘 存储数据的 什么是操作系统 控制计算机工作的流程 软件 什么是应用程序 安装在操…