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命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。
首先要弄清两个概念:打包和压缩。
打包:是指将一大堆文件或目录变成一个总的文件.
压缩:则是将一个大的文件通过一些压缩算法变成一个小文件。
为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。
linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。
一.命令格式
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 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/wq-mr-almost/p/10335709.html
linux每日命令(31):tar命令相关推荐
- Linux 命令之 tar 命令-打包和备份的归档工具(附压缩/解压工具)
文章目录 一.命令介绍 二.命令语法 三.常用选项 四.命令示例 (一)对指定的目录进行打包(即备份归档),不压缩 (二)对指定目录下的内容(不含目录本身)进行打包(即备份归档),不压缩 (三)通过通 ...
- tar linux aix,AIX下tar命令详解
1.tar常用方法 将所有.jpg的文件打成一个名为all.tar的包:tar-cfall.tar*.jpg:-c是表示产生新的包,-f指定包的文件名. 将所有.gif的文件增加到all.tar的包里 ...
- Linux命令:tar命令批量解压方法总结
tar命令批量解压方法总结 (2010-05-24 17:48:46) 转载▼ 标签: tar 批量解压 杂谈 分类: linux学习 由于linux的tar命令不支持批量解压,所以很多网友编写了好多 ...
- Linux bzip2/gzip/zip/tar 命令详解
Changelog 版本 时间 修订章节 1.0 2018-3-24 添加了关于xz的内容 Linux文件压缩工具 工具 文件扩展名 描述 bzip2 .bz2 采用 Burrows-Wheeler ...
- Linux中快捷键的使用,who命令,rm命令,ps命令,cd命令,kill命令,find命令,grep命令,tar命令(gz、tar、bz2),用户管理,vim部分配置,相关命令
1.进入Ubuntu之后打开终端窗口的快捷键是: ctrl + alt+t:通过这个命令可以打开终端. ctrl + alt+t:通过这个命令可以打开终端. 再开一个tab选项卡式 ...
- linux压缩与解压缩 tar命令
linux解压 tar命令 tar命令 tar [-cxtzjvfpPN] 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的 ...
- linux基本功系列之tar命令实战
文章目录 前言 一. tar命令介绍 二. 语法格式及常用选项 三. 参考案例 3.1 仅打包不压缩 3.2 打包后使用调用压缩命令进行压缩 3.3 列出文件的内容 3.4 追加文件到tar命令中 3 ...
- linux 文件夹tar.bz2压缩命令,使用tar命令提取(或解压缩)tar.bz2和tbz2文件的方法...
本文介绍使用tar命令提取(或解压缩)tar.bz2和tbz2文件的方法.tar命令允许你创建和提取tar归档文件,它支持各种压缩程序,例如gzip.bzip2.lzip.lzma.lzop.xz和c ...
- linux解压批量tar文件内容,Linux命令:tar命令批量解压方法总结
do tar xvf $tar; done for tar in *.tar.bz2; do tar xvf $tar; done 第二:用tar命令批量解压某个文件夹下所有的tar.gz文件 ls ...
- 解压命令linux tgz,Linux_centos_redhat下tar命令解压tgz文件方法
.tar.gz,或者.tgz的文件一般是在Linux下用tar和gnuzip压缩的文件. 1.在Linux下展开.tar.gz文件:tar zxvf filename.tar.gz filename ...
最新文章
- 13-19 Python Number、Python字符串、Python列表(List)、集合的基本操作、元组、字典Dicttionnary、日期和时间
- 对于Ping的过程,你真的了解吗?
- Network 第六篇 - 三层交换机配置路由功能
- 多目标进化优化(MOEA)方法
- base64 linux_渗透测试常用Linux命令总结
- java hashmap 无序_Map的有序和无序实现类,与Map的排序
- TM数据单窗算法和单通道算法反演地表温度(IDL实现)
- mongodb 如何更改端口号_Python 操作 MongoDB 数据库介绍
- Smart3D飞控地方坐标系
- 树莓派配置IP地址和wifi方法
- 2022全国职业技能大赛-网络系统管理-Debian模块:CA证书服务
- 透明度百分和六进制对比表
- java.lang.IllegalArgumentException: Illegal URL:
- 2017年10月WEB前端开发实习生面试题总结
- HTML经过按钮时按钮变大,html – 调整按钮大小
- SqlConnection,SqlDataAdapter,SqlCommand,SqlParameter
- 除了成本低、获客快等,企业直播还有什么优势呢?
- miix4 装linux,联想MIIX 4重装win7系统教程
- 金融项目经验之代码安全
- Python+Vue计算机毕业设计东软医疗HIS系统之住院入出转管理子系统7k546(源码+程序+LW+部署)
热门文章
- python递归详解_打破递归栈的深度限制: 解析一种Python尾递归优化的方法
- serverlet 区别_Servlet中/和/*的区别
- php lang无效,详解 Go 中的不可变类型
- sqlite php 函数大全,SQLite 表达式
- stn算子_在 Excel 中,公式都是以 ____________ 开始的,后面由操作数和运算符构成。...
- 四周有阴影_四周窄边全功能TypeC 飞利浦256P1FR评测
- android5.1内核版本,Android-x86现已基于5.1.1 Lollipop:支持UEFI和64位内核
- 电子科大计算机组成原理ppt,电子科技大学,计算机组成原理3计算机组成原理-3-5-组合逻辑控制方式.ppt...
- matlab 二重积分
- 【 MATLAB 】MATLAB 实现模拟信号采样后的重建(三)应用三次样条函数spline实现内插