tar 命令
语法:
tar [选项][打包文件名][文件|目录]
功能:tar(tape archive)命令将文件或目录打包成. tar 的打包文件或将打包文件解开。
gzip有一个致命的缺点:仅能压缩一个文件。即使对子目录压缩,也是对子目录里的个别文件压缩,并没有把它们压成一个包。在 Linux上,这个打包的任务由 tar 程序来完成。tar并不是压缩程序,因为它打包之后的大小跟原来一样大。所以它不是压缩程序,而是打包程序。而习惯上会先打包,产生一个,tar文件,再把这个包拿去压缩。这就是.tar.gz文件名的由来。.tar.gz 这样的长的名称有其简短形式为.tgz。tar命令选项及其功能见下表 。
tar 命令的各个选项及其功能
选项 功能
-b 该选项是为磁带机设定的。其后跟一数字,用来说 明区块的大小,系统预设值为 20(20×512 bytes)
-c 创建新的备份文件。如果用户想备份一个目录或 是一些文件,就要选择这个选项
-C 将文件备份到指定的目录
-f 指定备份文件名,这个选项通常是必选的
-j 用 bzip 来压缩/解压缩文件,加上该选项后可以将 备份文件进行压缩,但还原时也一定要使用该选项 进行解压缩
-k 保存已经存在的文件。例如把某个文件还原,在还
原的过程中,遇到相同的文件,不会进行覆盖
-m 在还原文件时,把所有文件的修改时间设定为现在
-M 创建多卷的备份文件,以便在几个磁盘中存放
-r 把要存档的文件追加到备份文件的末尾。例如用户 已经作好备份文件,又发现还有一个目录或是一些文 件忘记备份了,这时可以使用该选项,将忘记的目录 或文件追加到备份文件中
-t 列出备份文件的内容,查看已经备份了哪些文件
-T 从指定的文件中读取欲打包的文件路径
-u 更新文件。就是说,用新增的文件取代原备份文件,如 果在备份文件中找不到要更新的文件,则把它追加到 备份文件的最后
-v 显示处理文件信息的进度
-w 每一步都要求确认
-x 从备份文件中释放文件
-z 用 gzip 来压缩/解压缩文件,加上该选项后可以将备 份文件进行压缩,但还原时也一定要使用该选项进行 解压缩
实例: 使用 tar 命令。
[root@localhost ztg]# dir
school txtfile
[root@localhost ztg]#tar -czvf /root/Desktop/txtfile.tar.gz txtfile
//对 ztg 目录中的子目录 txtfile 进行打包和压缩,将打包压缩文件放在/root/Desktop 目录中(即桌面上)。
[rootalocalhost Desktop]# dir
linux_pic txtfile.tar.gz
[rootalocalhost Desktop]# tar -xzvf txtfile.tar.gz
//对txtfile.tar. gz 进行解压解包。
[root@localhost Desktop]# dir
linux_pic txtfile txtfile.tar.gz
//执行 dir 命令,查看桌面上的内容。
[rootolocalhost data]# pwd
/home/ztg/school/data
[rootolocalhost data]# tar -xzvf /root/Desktop/txtfile.tar.gz
//将/root/Desktop/txtfile.tar.gz 解压解包到/home/ztg/school/data 目录中。
分析如下的例子:
例 1:#tar -cf exam.tar exam1 *.txt(把所有 exam1 *.txt 的文件打包成一个exam.tar 文件。其中,-c 是产生新备份文件;-f 是输出到默认的设备,可以把它当作一定要加的选项)
例 2:#tar -rf exam.tar exam2*.txt(exam.tar 是一个已经存在的打包文件了,再把 exam2*.txt 的所有文件也打包进去。-r 是再增加文件的意思)
例 3:#tar -uf exam.tar exam11.txt (刚才 exam1 *.txt 已经打包进去了,但是其中的 exam11.txt 后来又做了更改,把新改过的文件再重新打包进去,-u 是更新的意思)
例 4:#tar -tf exam.tar(列出 exam.tar 中有哪些文件被打包在里面。-t 是列出的意思)
例 5:#tar -xf exam.tar(把 exam.tar 打包文件中全部文件释放出来,-x 是释放的意思)
例 6:#tar -xf exam.tar exam2*.txt (只把 exam. tar 打包文件中的所有 exam2*.txt文件释放出来,-x是释放的意思)
例 7:#tar -zcf exam.tar.gz exam1*.txt
注意:第一,加了-z选项,它会向 gzip 借用压缩能力;第二,注意产生出来的文件名是exam. tar. gz。两个过程一次完成。
例 8:解压解包。
例1:#tar -xzvf exam.tar.gz
//加一个选项-v,就是显示打包兼压缩或者解压的过程。因为 Linux 上最常见的软件包文件是.tar.gz 文件,因此,最常看到的解压方式就是这样了
例 2:#tar -xzvf exam.tgz
//.tgz 文件名也是一样的,因性质一样,仅文件名简单一点而已
例 3:#tar xzvf. exam.tar.gz -c exam/
//解压到 exam 目录中
例 4:#tar xjvf exam.tar.bz2 -c exam/
// j:使用 bzip2
例 9:打包压缩。
例1:#tar cjvf test.tar.bz2 exam1*.txt
例2:#tarczvf test.tar.gz exam1*.txt
注意:这个-xzvf 的选项几乎可以是固定的,读者最好将-xxvf(解压解包)记住。.tar. gz文件的生成如下例所示,读者最好也将-cxvf(打包压缩)记住,以后就可以方便地生成这种文件了。
#tar -czvf exam.tar.gz *.*或#tar -czvf exam.tgz *.*。
注意: .bz2 和. gz 都是 Linux 下压缩文件的格式,. bz2 比. gz 压缩率更高,.gz比.bz2 花费更少的时间。也就是说同一个文件,压缩后,. bz2 文件比.gz 文件更小,但
是.bz2 文件的减小是以花费更多的时间为代价的。读者最好也记住-cjvf(打包压缩),-xjvf(解压解包)。
#tar cjvf exam.tar.bz2 exam1*.txt
#tar xjvf exam.tar.bz -C exam/ // j:使用 bzip2