Linux 中 17 个 tar 命令实用示例

Tar(Tape AQX56chive,磁带归档的缩写,LCTT
译注:最先布署用来将文件打包到磁带上,今后大家基本上使用它来落实备份某些分区只怕有个别重视的目录)是类
Unix
系统中应用最广大的命令,用于归档八个文本或目录到单个归档文件中,何况归档文件能够更进一层利用
gzip 可能 bzip2 等技术拓宽压缩。换言之,tar
命令也能够用来备份:先是归档四个文本和目录到一个独门的 tar
文件或归档文件,然后在急需之时将 tar 文件中的文件和目录释放出来。

图片 1

本文将介绍 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 文件,将 /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 文件中。

[root@linuxtechi ~]# tar -tvf myarchive.tar root/anaconda-ks.cfg
-rw------- root/root 953 2016-08-24 01:33 root/anaconda-ks.cfg
[root@linuxtechi ~]#

示范 3:追Gavin件到归档(tar)文件中

-r 选项用于向已某个 tar 文件中追Gavin件。上边来将 /etc/fstab 增添到
data.tar 中。

[root@linuxtechi ~]# tar -rvf data.tar /etc/fstab

注:在裁减过的 tar 文件中不可能举办追Gavin件操作。

演示 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 文件中的内容

使用 -t 选项能够查看 .tar.gz 或 .tgz 文件中内容。如下:

[root@linuxtechi ~]# tar -tvf myarchive.tgz  | more
.............................................
drwxr-xr-x root/root         0 2016-09-07 08:41 etc/
-rw-r--r-- root/root       541 2016-08-24 01:23 etc/fstab
-rw------- root/root         0 2016-08-24 01:23 etc/crypttab
lrwxrwxrwx root/root         0 2016-08-24 01:23 etc/mtab -> /proc/self/mounts
-rw-r--r-- root/root       149 2016-09-07 08:41 etc/resolv.conf
drwxr-xr-x root/root         0 2016-09-06 03:55 etc/pki/
drwxr-xr-x root/root         0 2016-09-06 03:15 etc/pki/rpm-gpg/
-rw-r--r-- root/root      1690 2015-12-09 04:59 etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
-rw-r--r-- root/root      1004 2015-12-09 04:59 etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-7
-rw-r--r-- root/root      1690 2015-12-09 04:59 etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Testing-7
-rw-r--r-- root/root      3140 2015-09-15 06:53 etc/pki/rpm-gpg/RPM-GPG-KEY-foreman
..........................................................

示例 11:列出 .tar.bz2 或 .tbz2 文件中的内容

使用 -t 选项能够查看 .tar.bz2 或 .tbz2 文件中内容。如下:

[root@linuxtechi ~]# tar -tvf myarchive.tbz2  | more
........................................................
rwxr-xr-x root/root         0 2016-08-24 01:25 etc/pki/java/
lrwxrwxrwx root/root         0 2016-08-24 01:25 etc/pki/java/cacerts -> /etc/pki/ca-trust/extracted/java/cacerts
drwxr-xr-x root/root         0 2016-09-06 02:54 etc/pki/nssdb/
-rw-r--r-- root/root     65536 2010-01-12 15:09 etc/pki/nssdb/cert8.db
-rw-r--r-- root/root      9216 2016-09-06 02:54 etc/pki/nssdb/cert9.db
-rw-r--r-- root/root     16384 2010-01-12 16:21 etc/pki/nssdb/key3.db
-rw-r--r-- root/root     11264 2016-09-06 02:54 etc/pki/nssdb/key4.db
-rw-r--r-- root/root       451 2015-10-21 09:42 etc/pki/nssdb/pkcs11.txt
-rw-r--r-- root/root     16384 2010-01-12 15:45 etc/pki/nssdb/secmod.db
drwxr-xr-x root/root         0 2016-08-24 01:26 etc/pki/CA/
drwxr-xr-x root/root         0 2015-06-29 08:48 etc/pki/CA/certs/
drwxr-xr-x root/root         0 2015-06-29 08:48 etc/pki/CA/crl/
drwxr-xr-x root/root         0 2015-06-29 08:48 etc/pki/CA/newcerts/
drwx------ root/root         0 2015-06-29 08:48 etc/pki/CA/private/
drwx------ root/root         0 2015-11-20 06:34 etc/pki/rsyslog/
drwxr-xr-x root/root         0 2016-09-06 03:44 etc/pki/pulp/
..............................................................

示例 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 成立压缩归档文件

想像这么一个风貌:把想要归档和压缩的文件及目录记录到到多少个文本,然后把这几个文件作为
tar
命令的撒播参数来完结归档职责;而一时候则是内需免去地点提到的那几个文件之中著录的一定路线后实行归档和减少。

在 tar
命令中央银行使 -T 选项来钦定该输入文件,使用 -X 选项来内定包罗要肃清的文本列表。

假若要归档 /etc、/opt、/home 目录,并免去 /etc/sysconfig/kdump 和
/etc/sysconfig/foreman 文件,能够创设 /root/tar-include 和
/root/tar-exclude 然后各自输入以下内容:

[root@linuxtechi ~]# cat /root/tar-include
/etc
/opt
/home
[root@linuxtechi ~]#
[root@linuxtechi ~]# cat /root/tar-exclude
/etc/sysconfig/kdump
/etc/sysconfig/foreman
[root@linuxtechi ~]#

运作以下命令来创设一个调整和缩小归档文件。

[root@linuxtechi ~]# tar zcpvf mybackup-$(date +%Y-%m-%d).tgz -T /root/tar-include -X /root/tar-exclude

示例 16:查看 .tar、.tgz 和 .tbz2 文件的轻重缓急

使用如下命令来查看 (压缩State of Qatar tar 文件的体量。

[root@linuxtechi ~]# tar -czf - data.tar | wc -c
427
[root@linuxtechi ~]# tar -czf - mybackup-2016-09-09.tgz | wc -c
37956009
[root@linuxtechi ~]# tar -czf - myarchive.tbz2 | wc -c
30835317
[root@linuxtechi ~]#

示例 17:分割体量宏大的 tar 文件为多份小文件

类 Unix 系统中使用 split 命令来将大概积文件分割成小体量文件。大意积的
tar 当然也足以应用这么些命令来拓宽私分。

假如需求将 “mybackup-二〇一四-09-09.tgz” 分割成每份 6 MB 的小文件。

Syntax :  split -b <Size-in-MB> <tar-file-name>.<extension> “prefix-name”

[root@linuxtechi ~]# split -b 6M mybackup-2016-09-09.tgz mybackup-parts

如上命令会在当前目录分割 mybackup-二〇一五-09-09.tgz 文本成为三个 6 MB
的小文件,文件名称叫 mybackup-partsaa ~
mybackup-partsag。假诺在要在划分文件后以数字而非字母来分歧,能够在上述的
split 命令使用-d 选项。

[root@linuxtechi ~]# ls -l mybackup-parts*
-rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsaa
-rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsab
-rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsac
-rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsad
-rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsae
-rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsaf
-rw-r--r--. 1 root root 637219  Sep 10 03:05 mybackup-partsag
[root@linuxtechi ~]#

然后经过网络将这几个分割文件转移到别的服务器,就能够统一成为一个单身的 tar
文件了,如下:

[root@linuxtechi ~]# cat mybackup-partsa* > mybackup-2016-09-09.tgz
[root@linuxtechi ~]#

文毕,希望您爱怜 tar 命令的那多少个例外的亲自过问。随即商议并享受你的心得。

相关文章