Linux 中 17 个 tar 命令实用示例
Tar(Tape ARchive,磁带归档的缩写,LCTT 译注:最初设计用于将文件打包到磁带上,现在我们大都使用它来实现备份某个分区或者某些重要的目录)是类 Unix 系统中使用最广泛的命令,用于归档多个文件或目录到单个归档文件中,并且归档文件可以进一步使用 gzip 或者 bzip2 等技术进行压缩。换言之,tar 命令也可以用于备份:先是归档多个文件和目录到一个单独的 tar 文件或归档文件,然后在需要之时将 tar 文件中的文件和目录释放出来。
本文将介绍 tar 的 17 个实用示例。
tar 命令语法如下:
# tar
下面列举 tar 命令中一些常用的选项:
–delete : 从归档文件 (而非磁带) 中删除
-r, –append : 将文件追加到归档文件中
-t, –list : 列出归档文件中包含的内容
–test-label : 测试归档文件卷标并退出
-u, –update : 将已更新的文件追加到归档文件中
-x, –extract, –get : 释放归档文件中文件及目录
-C, –directory=DIR : 执行归档动作前变更工作目录到 DIR
-f, –file=ARCHIVE : 指定 (将要创建或已存在的) 归档文件名
-j, –bip2 : 对归档文件使用 bzip2 压缩
-J, –xz : 对归档文件使用 xz 压缩
-p, –preserve-permissions : 保留原文件的访问权限
-v, –verbose : 显示命令整个执行过程
-z, gzip : 对归档文件使用 gzip 压缩
注 : 在 tar 命令选项中的连接符 – 是可选的(LCTT 译注:不用 – 也没事。这在 GNU 软件里面很罕见,大概是由于 tar 命令更多受到古老的 UNIX 风格影响)。
示例 1:创建一个 tar 归档文件
现在来创建一个 tar 文件,将 1115.www.qixoo.qixoo.com/etc/ 目录和 /root/anaconda-ks.cfg 文件打包进去。
[root@linuxtechi ~]# tar -cvf myarchive.tar /etc /root/anaconda-ks.cfg
以上命令会在当前目录创建一个名为 “myarchive” 的 tar 文件,内含 /etc/ 目录和 /root/anaconda-ks.cfg 文件。
其中,-c 选项表示要创建 tar 文件,-v 选项用于输出 tar 的详细过程到屏幕上,-f 选项则是指定归档文件名称。
[root@linuxtechi ~]# ls -l myarchive.tar
-rw-r–r–. 1 root root 22947840 Sep 7 00:24 myarchive.tar
[root@linuxtechi ~]#
示例 2:列出归档文件中的内容
在 tar 命令中使用 –t 选项可以不用释放其中的文件就可以快速列出文件中包含的内容。
[root@linuxtechi ~]# tar -tvf myarchive.tar
列出 tar 文件中的指定的文件和目录。下列命令尝试查看 anaconda-ks.cfg 文件是否存在于 tar 文件中。
示例 3:追加文件到归档(tar)文件中
-r 选项用于向已有的 tar 文件中追加文件。下面来将 /etc/fstab 添加到 data.tar 中。
[root@linuxtechi ~]# tar -rvf data.tar /etc/fstab
注:在压缩过的 tar 文件中无法进行追加文件操作。
示例 4:从 tar 文件中释放文件以及目录
-x 选项用于释放出 tar 文件中的文件和目录。下面来释放上边创建的 tar 文件中的内容。
[root@linuxtechi ~]# tar -xvf myarchive.tar
这个命令会在当前目录中释放出 myarchive.tar 文件中的内容。
示例 5:释放 tar 文件到指定目录
假如你想要释放 tar 文件中的内容到指定的文件夹或者目录,使用 -C 选项后边加上指定的文件的路径。
[root@linuxtechi ~]# tar -xvf myarchive.tar -C /tmp/
示例 6:释放 tar 文件中的指定文件或目录
假设你只要释放 tar 文件中的 anaconda-ks.cfg 到 /tmp 目录。
语法如下:
# tar –xvf {tar-file } {file-to-be-extracted } -C {path-where-to-extract}
[root@linuxtechi tmp]# tar -xvf /root/myarchive.tar root/anaconda-ks.cfg -C /tmp/ root/anaconda-ks.cfg
[root@linuxtechi tmp]# ls -l /tmp/root/anaconda-ks.cfg
-rw——-. 1 root root 953 Aug 24 01:33 /tmp/root/anaconda-ks.cfg
[root@linuxtechi tmp]#
示例 7:创建并压缩归档文件(.tar.gz 或 .tgz)
假设我们需要打包 /etc 和 /opt 文件夹,并用 gzip 工具将其压缩。可以在 tar 命令中使用 -z 选项来实现。这种 tar 文件的扩展名可以是 .tar.gz 或者 .tgz。
[root@linuxtechi ~]# tar -zcpvf myarchive.tar.gz /etc/ /opt/
或
[root@linuxtechi ~]# tar -zcpvf myarchive.tgz /etc/ /opt/
示例 8:创建并压缩归档文件(.tar.bz2 或 .tbz2)
假设我们需要打包 /etc 和 /opt 文件夹,并使用 bzip2 压缩。可以在 tar 命令中使用 -j 选项来实现。这种 tar 文件的扩展名可以是 .tar.bz2 或者 .tbz。
[root@linuxtechi ~]# tar -jcpvf myarchive.tar.bz2 /etc/ /opt/
或
[root@linuxtechi ~]# tar -jcpvf myarchive.tbz2 /etc/ /opt/
示例 9:排除指定文件或类型后创建 tar 文件
创建 tar 文件时在 tar 命令中使用 –exclude 选项来排除指定文件或者类型。假设在创建压缩的 tar 文件时要排除 .html 文件。
[root@linuxtechi ~]# tar -zcpvf myarchive.tgz /etc/ /opt/ –exclude=*.html
示例 10:列出 .tar.gz 或 .tgz 文件中的内容
示例 11:列出 .tar.bz2 或 .tbz2 文件中的内容
示例 12:解压 .tar.gz 或 .tgz 文件
使用 -x 和 -z 选项来解压 .tar.gz 或 .tgz 文件。如下:
[root@linuxtechi ~]# tar -zxpvf myarchive.tgz -C /tmp/
以上命令将 tar 文件解压到 /tmp 目录。
注:现今的 tar 命令会在执行解压动作前自动检查文件的压缩类型,这意味着我们在使用 tar 命令是可以不用指定文件的压缩类型。如下:
[root@linuxtechi ~]# tar -xpvf myarchive.tgz -C /tmp/
示例 13:解压 .tar.bz2 或 .tbz2 文件
使用 -j 和 -x 选项来解压 .tar.bz2 或 .tbz2 文件。如下:
[root@linuxtechi ~]# tar -jxpvf myarchive.tbz2 -C /tmp/
或
[root@linuxtechi ~]# tar xpvf myarchive.tbz2 -C /tmp/
示例 14:使用 tar 命令进行定时备份
总有一些实时场景需要我们对指定的文件和目录进行打包,已达到日常备份的目的。假设需要每天备份整个 /opt 目录,可以创建一个带 tar 命令的 cron 任务来完成。如下:
[root@linuxtechi ~]# tar -zcvf optbackup-$(date +%Y-%m-%d).tgz /opt/
为以上命令创建一个 cron 任务即可。
示例 15:使用 -T 及 -X 创建压缩归档文件
示例 16:查看 .tar、.tgz 和 .tbz2 文件的大小
示例 17:分割体积庞大的 tar 文件为多份小文件
然后通过网络将这些分割文件转移到其他服务器,就可以合并成为一个单独的 tar 文件了,如下:
[root@linuxtechi ~]# cat mybackup-partsa* > mybackup-2016-09-09.tgz [root@linuxtechi ~]#
文毕,希望你喜欢 tar 命令的这几个不同的示例。随时评论并分享你的心得。
Linux 中 17 个 tar 命令实用示例的更多相关文章
- 17 个 tar 命令实用示例【转】
Tar(Tape ARchive,磁带归档的缩写,LCTT 译注:最初设计用于将文件打包到磁带上,现在我们大都使用它来实现备份某个分区或者某些重要的目录)是类 Unix 系统中使用最广泛的命令,用于归 ...
- [转]linux中强大的screen命令
[转]linux中强大的screen命令 http://pythonorg.diandian.com/post/2012-01-05/40027464147 今天用SCREEN用点生了,有几个功能不知 ...
- Linux中W与Who命令的使用
踢掉一个从某个终端连上的用户pkill -kill -t pts/0 ---------------------------------------------------------------- ...
- 【日常小记】linux中强大且常用命令:find、grep【转】
转自:http://www.cnblogs.com/skynet/archive/2010/12/25/1916873.html 在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍fin ...
- Linux 中强大且常用命令:find、grep
在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下: find命令 f ...
- 【转载】Linux中强大且常用命令:find、grep
转载自:http://www.linuxeden.com/html/softuse/20130804/142065.html 在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find. ...
- Linux中mod相关的命令 内核模块化 mod相关命令都是用来动态加载内核模块/驱动程序模块
Linux中mod相关的命令 内核模块化 mod相关命令都是用来动态加载内核模块/驱动程序模块 http://baike.baidu.com/link?url=lxiKxFvYm-UfJIxMjz ...
- linux中强大且常用命令:find、grep
在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们. 本文结构如下: find命令 find命令的一般形 ...
- Linux中find、grep命令详细用法
在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下: find命令 find命令的一般形式 ...
随机推荐
- 转一篇关于如何在Unity里使用Protobuf
原帖地址: http://purdyjotut.blogspot.com/2013/10/using-protobuf-in-unity3d.html 先转过来,等时间合适了,再来收拾 Using P ...
- android之拍照与摄像
拍照和摄像的意图很简答,这里直接贴代码 布局文件 <?xml version="1.0" encoding="utf-8"?> <Linear ...
- CSS3 transform原点设置
以左上角为原点 -moz-transform-origin: 0 0; -webkit-transform-origin:0 0; -o-transform-origin:0 0; 以右上角给原点 - ...
- mysql 定义自增
The database returned no natively generated identity value问题 alter table user_table MODIFY user_id I ...
- Sublime轻量级编辑器
对于从事计算机的小伙伴,好用的编辑器等效于手里的利器!可说为,砍柴不误,磨刀工! 手有神器,游走四方! sublime,记得好像是支持跨平台的 家乡的情绪 http://pan.baidu.com/s ...
- strut2的拦截器之对request和session的封装
本文主要内容是对 implements Interceptor 这种方式的探索 前提是需要了解:责任链模式 对下面这句代码的理解: Map<String, Object> session ...
- jQ1.5中的事件系统(低版本的事件系统)
jQ的一个个版本事系统都在修正着bug和不断优化, 而且看了事件系统对事件的兼容更加熟悉, 更加了解jQ内部的事件机制. 因为jQ对事件系统引入了事件命名空间,事件的代理, 事件的手动触发,事件描述等 ...
- python 进程间共享数据 (三)
Python的multiprocessing模块包装了底层的机制,提供了Queue.Pipes等多种方式来交换数据. 我们以Queue为例,在父进程中创建两个子进程,一个往Queue里写数据,一个从Q ...
- 6 this的使用方法
class Person { String name; void talk() { System.out.println("my name is "+this.name); } } ...
- 【USACO 2.2】Subset Sums (DP)
N (1 <= N <= 39),问有多少种把1到N划分为两个集合的方法使得两个集合的和相等. 如果总和为奇数,那么就是0种划分方案.否则用dp做. dp[i][j]表示前 i 个数划分到 ...