每天一个Linux命令(24)tar命令

tar命令可以为linux的文件和目录创建档案。

    (1)用法:

用法:  tar  [选项]   [文件参数]

    (2)功能:

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

利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

要弄清两个概念:打包和压缩。

打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

为什么要区分这两个概念呢?

这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。

    (3)选项参数:

1) -c   --create             建立新的备份文件

2) -z                    支持gzip解压文件

3) -j                    支持bzip2解压文件

4) -v  --verbose             显示指令执行过程

5) -f<备份文件> --file=<备份文件>    指定备份文件

6) -t或--list                列出备份文件的内容
      7) -N<日期格式>--newer=<日期时间>   只将较指定日期更新的文件保存到备份文件里
      8) -x或--extract或--get            从备份文件中还原文件

9) -C <目录>               这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项

10) -P  --absolute-names            文件名使用绝对名称,不移除文件名称前的“/”号

    (4)实例:

1)[[email protected] Documents]# tar -cvf Dir.tar Dir           f选项参数是必不可少的,这里以普通压缩格式压缩文件夹   

[[email protected] Documents]# tar -cvf Dir.tar Dir
Dir/
Dir/head_text
Dir/less1
Dir/less2
[[email protected] Documents]# ll
总用量 28
-rwx--xrwx. 1 root root    27 5月  19 04:21 core.log
dr-xr-xr-x. 2 root root    46 5月  19 23:29 Dir
-rw-r--r--. 1 root root 10240 5月  21 06:22 Dir.tar
-r--r--r--. 1 root root     0 5月  19 04:16 find
dr--r--r--. 2 root root    84 5月  19 04:57 findDir
-r--r--r--. 1 root root     0 5月  15 18:21 newlocate
-rw-r--r--. 1 root root    85 5月  19 04:25 t3.txt
--w-------. 1 root root   259 5月  12 21:53 tail_text
--w-------. 1 root root   216 5月  12 22:24 tempory
--w-------. 1 root root     0 5月  15 18:34 uText

2)[[email protected] Documents]# tar -czvf Dir.tar.gz Dir        以其他格式压缩有Gzip和bzip2两种格式

[[email protected] Documents]# tar -czvf Dir.tar.gz Dir
Dir/
Dir/head_text
Dir/less1
Dir/less2
[[email protected] Documents]# tar -cjvf Dir.tar.bz2 Dir
Dir/
Dir/head_text
Dir/less1
Dir/less2
[[email protected] Documents]# ll
总用量 40
-rwx--xrwx. 1 root root    27 5月  19 04:21 core.log
dr-xr-xr-x. 2 root root    46 5月  19 23:29 Dir
-rw-r--r--. 1 root root 10240 5月  21 06:22 Dir.tar
-rw-r--r--. 1 root root   646 5月  21 06:35 Dir.tar.bz2                 //公认的后缀名,以bzip2压缩
-rw-r--r--. 1 root root   656 5月  21 06:30 Dir.tar.gz                  //公认的后缀名,以Gzip压缩
-r--r--r--. 1 root root     0 5月  19 04:16 find
dr--r--r--. 2 root root    84 5月  19 04:57 findDir
-r--r--r--. 1 root root     0 5月  15 18:21 newlocate
-rw-r--r--. 1 root root    85 5月  19 04:25 t3.txt
--w-------. 1 root root   259 5月  12 21:53 tail_text
--w-------. 1 root root   216 5月  12 22:24 tempory
--w-------. 1 root root     0 5月  15 18:34 uText
-rw-r--r--. 1 root root   105 5月  21 06:35 vf

3)[[email protected] Documents]# tar -ztvf Dir.tar.gz          查阅上述tar包内有哪些文件,按什么格式压缩就要按照什么格式解压

[[email protected] Documents]# tar -ztvf Dir.tar.gz
dr-xr-xr-x root/root         0 2016-05-19 23:29 Dir/
-r-xr-xr-x root/root       664 2016-05-09 07:59 Dir/head_text
-r-xr-xr-x root/root        45 2016-05-09 08:15 Dir/less1
-r-xr-xr-x root/root        57 2016-05-09 08:16 Dir/less2
[[email protected] Documents]# tar -jtvf Dir.tar.bz2
dr-xr-xr-x root/root         0 2016-05-19 23:29 Dir/
-r-xr-xr-x root/root       664 2016-05-09 07:59 Dir/head_text
-r-xr-xr-x root/root        45 2016-05-09 08:15 Dir/less1
-r-xr-xr-x root/root        57 2016-05-09 08:16 Dir/less2

4)[[email protected] findDir]# tar -zxvf Dir.tar.gz Dir          解压tar.gz压缩包,到指定名的文件夹,必须是Dir,不能变

[[email protected] findDir]# tar -zxvf Dir.tar.gz Dir
Dir/
Dir/head_text
Dir/less1
Dir/less2
[[email protected] findDir]# ll
总用量 20
dr-xr-xr-x. 2 root root    46 5月  19 23:29 Dir
-rw-r--r--. 1 root root 10240 5月  21 06:22 Dir.tar
-rw-r--r--. 1 root root   646 5月  21 06:35 Dir.tar.bz2
-rw-r--r--. 1 root root   656 5月  21 06:30 Dir.tar.gz
-r--r--r--. 1 root root     0 5月  17 04:18 p1.pdf
-r--r--r--. 1 root root     0 5月  17 04:18 p2.pdf
-r--r--r--. 1 root root     0 5月  17 03:50 t1.txt
-r--r--r--. 1 root root     0 5月  17 04:02 T1.txt
-r--r--r--. 1 root root     0 5月  19 04:58 t2.txt
-r--r--r--. 1 root root     0 5月  17 04:02 T2.txt

5)[[email protected] findDir]# tar -jxvf Dir.tar.bz2 Dir/less1    只将tar内的部分文件解压出来,要进行匹配,如果不匹配会报错“归档找不到”   

[[email protected] findDir]# tar -jxvf Dir.tar.bz2 Dir/less1
Dir/less1

6)[[email protected] Documents]# tar -pzcvf P.tar.gz find t3.txt vf uText     文件备份下来,并且保存其权限

[[email protected] Documents]# tar -pzcvf P.tar.gz find t3.txt vf uText
find
t3.txt
vf
uText

7)[[email protected] Documents]# tar -pzxvf P.tar.gz -C Pdir         指定解压的目录

[[email protected] Documents]# tar -zcvf P1.tar.gz find t3.txt vf uText               //没有p参数的打包并压缩
find
t3.txt
vf
uText
[[email protected] Documents]# ll
总用量 32
-rwx--xrwx. 1 root root   27 5月  19 04:21 core.log
dr-xr-xr-x. 2 root root   46 5月  19 23:29 Dir
-r--r--r--. 1 root root    0 5月  19 04:16 find
dr--r--r--. 3 root root 4096 5月  21 06:52 findDir
-r--r--r--. 1 root root    0 5月  15 18:21 newlocate
-rw-r--r--. 1 root root  317 5月  21 07:06 P1.tar.gz                    //没有p参数
-rw-r--r--. 1 root root  317 5月  21 07:05 P.tar.gz                     //有p参数
-rw-r--r--. 1 root root   85 5月  19 04:25 t3.txt
--w-------. 1 root root  259 5月  12 21:53 tail_text
--w-------. 1 root root  216 5月  12 22:24 tempory
--w-------. 1 root root    0 5月  15 18:34 uText
-rw-r--r--. 1 root root  105 5月  21 06:35 vf
[[email protected] Documents]# mkdir Pdir
[[email protected] Documents]# tar -zxvf P.tar.gz -C Pdir                  //指定解压缩的路径
find
t3.txt
vf
uText
[[email protected] Documents]# mkdir NoPdir
[[email protected] Documents]# tar -zxvf P1.tar.gz -C NoPdir
find
t3.txt
vf
uText
[[email protected] Documents]# ls -l Pdir                         //查看有p无p的区别
总用量 8
-r--r--r--. 1 root root   0 5月  19 04:16 find
-rw-r--r--. 1 root root  85 5月  19 04:25 t3.txt
--w-------. 1 root root   0 5月  15 18:34 uText
-rw-r--r--. 1 root root 105 5月  21 06:35 vf
[[email protected] Documents]# ls -l NoPdir
总用量 8
-r--r--r--. 1 root root   0 5月  19 04:16 find
-rw-r--r--. 1 root root  85 5月  19 04:25 t3.txt
--w-------. 1 root root   0 5月  15 18:34 uText
-rw-r--r--. 1 root root 105 5月  21 06:35 vf          //并没有发现有什么区别

8)[[email protected] Documents]# tar -N "2016/05/20" -zcvf 520.tar.gz ./*      在文件夹当中,比某个日期新的文件才备份

[[email protected] Documents]# tar -N "2016/05/20" -zcvf 520.tar.gz ./*
tar: 选项 --after-date: 将日期 ‘2016/05/20’ 当作 2016-05-20 00:00:00
./520.tar.gz
tar: ./520.tar.gz:文件缩小 45 字节;用零填充
./core.log
./Dir/
./Dir/head_text
./Dir/less1
./Dir/less2
./find
./findDir/
./findDir/t1.txt
./findDir/T1.txt
./findDir/T2.txt
./findDir/p1.pdf
./findDir/p2.pdf
./findDir/t2.txt
./findDir/Dir.tar
./findDir/Dir.tar.gz
./findDir/Dir.tar.bz2
./findDir/Dir/
./findDir/Dir/head_text
./findDir/Dir/less2
./findDir/Dir/less1
./log17.tar.gz
./newlocate
./NoPdir/
./NoPdir/find
./NoPdir/t3.txt
./NoPdir/vf
./NoPdir/uText
./P1.tar.gz
./Pdir/
./Pdir/find
./Pdir/t3.txt
./Pdir/vf
./Pdir/uText
./P.tar.gz
tar: ./t3.txt: 文件未改变;未输出
tar: ./tail_text: 文件未改变;未输出
tar: ./tempory: 文件未改变;未输出
tar: ./uText: 文件未改变;未输出
./vf

9)[[email protected] Documents]# tar --exclude Dir/less1 -zcvf Dir.test2.tar.gz Dir      打包时不包括特定目录下的文件

[[email protected] Documents]# tar --exclude ./Dir/less1 -zcvf Dir.test.tar.gz Dir       //这里目录加个./,经后续验证,没有达到不包括的效果
Dir/
Dir/head_text
Dir/less1
Dir/less2
[[email protected] Documents]# tar -ztvf Dir.test.tar.gz
dr-xr-xr-x root/root         0 2016-05-19 23:29 Dir/
-r-xr-xr-x root/root       664 2016-05-09 07:59 Dir/head_text
-r-xr-xr-x root/root        45 2016-05-09 08:15 Dir/less1
-r-xr-xr-x root/root        57 2016-05-09 08:16 Dir/less2
[[email protected] Documents]# tar --exclude Dir/less1 -zcvf Dir.test2.tar.gz Dir
Dir/
Dir/head_text
Dir/less2
[[email protected] Documents]# tar -ztvf Dir.test2.tar.gz
dr-xr-xr-x root/root         0 2016-05-19 23:29 Dir/
-r-xr-xr-x root/root       664 2016-05-09 07:59 Dir/head_text
-r-xr-xr-x root/root        57 2016-05-09 08:16 Dir/less2

      (5)其他:

利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。

时间: 2024-12-29 20:45:43

每天一个Linux命令(24)tar命令的相关文章

linux中的 tar命令的 -C 参数,以及其它一些参数

tar命令的-C参数    $ tar -cvf file2.tar /home/usr2/file2 tar: Removing leading '/' from members names home/usr2/file2 该命令可以将/home/usr2/file2文件打包到当前目录下的file2.tar中,需要注意的是:使用绝对路径标识的源文件,在用tar命令压缩后,文件名连同绝对路径(这里是home/usr2/,根目录'/'被自动去掉了)一并被压缩进来.使用tar命令解压缩后会出现以下情

[转载]linux下使用tar命令

转自:http://www.cnblogs.com/li-hao/archive/2011/10/03/2198480.html linux下使用tar命令 解压语法:tar [主选项+辅选项] 文件或者目录 使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用. 主选项: c 创建新的档案文件.如果用户想备份一个目录或是一些文件,就要选择这个选项.相当于打包. x 从档案文件中释放文件.相当于拆包. t 列出档案文件的内容,查看已经备份了哪些文件. 特别注意

linux基础-第八单元 正文处理命令及tar命令

第八单元 正文处理命令及tar命令 使用cat命令进行文件的纵向合并 两种文件的纵向合并方法 归档文件和归档技术 归档的目的 什么是归档 tar命令的功能 tar命令的常用选项 使用tar命令创建.查看及抽取归档文件 使用tar命令创建归档文件 使用tar命令查看归档文件 使用tar命令抽取归档文件 文件的压缩和解压缩 什么是压缩 压缩的目的 什么是解压缩 gzip命令和gunzip命令 bzip2命令和bunzip2命令 在使用tar命令的同时进行压缩和解压缩 在使用tar命令的同时进行压缩和

linux下使用tar命令 (转至http://www.cnblogs.com/li-hao/archive/2011/10/03/2198480.html)

解压语法:tar [主选项+辅选项] 文件或者目录 使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用.主选项:c 创建新的档案文件.如果用户想备份一个目录或是一些文件,就要选择这个选项.相当于打包. x 从档案文件中释放文件.相当于拆包. t 列出档案文件的内容,查看已经备份了哪些文件. 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩.辅助选项: -z :是否同时具有 gzip 的属性?亦即是否需要用 gzi

Linux中快捷键的使用,who命令,rm命令,ps命令,cd命令,kill命令,find命令,grep命令,tar命令(gz、tar、bz2),相关命令

1.进入Ubuntu之后打开终端窗口的快捷键是: ctrl + alt+t:通过这个命令可以打开终端.截图是: 2.关闭一个终端窗口的方式是: Alt +F4,在Ubuntu下还可以是exit 3.对于terminal中的符号,其中的$标识,普通用户时显示的是$,超级管理员对应的符号是:# 截图如下: 4.whoami:查看我是谁的命令,截图如下: 通过whoami或者who命令查看当前用户 5.清屏的命令是: clear,快捷键是:ctrl + l 6.查看当前所在位置的命令是:pwd 7.c

Linux压缩打包tar命令

  命令简介   在Linux系统的维护.管理中,tar命令是一个使用频率很高的命令,tar命令的功能主要是将众多文件打包成一个tar文件并压缩,并且能保持文件的权限属性.tar其实最开始是用来做磁带备份存盘的,tar是tape archive的简称.后面扩展到不仅仅局限于磁带备份存盘.也能存放到文件系统中.tar命令版本众多,下面整理了一些常用的参数,具体以实际版本为准. 命令参数   参数 参数描述 -c 创建新的档案文件 -C 指定要解压到的目录 -f 指定打包的文件名.在f之后要立即接打

Linux命令学习-tar命令

Linux中,tar命令的全称是tape archive,主要作用是压缩和解压文件. 参数说明: -c 创建新的压缩档案 -x 解压档案 -t 列出压缩档案的内容 -z 使用gzip来解压和压缩,文件后缀一般为 .tar.gz -j 使用bzip2来解压和压缩,文件后缀一般为 .tar.bzip2 -v 显示详细过程,用于查看整个过程中解压/压缩的文件 -f 指定压缩文件 假设当前处于wintest用户的主目录,路径为 /home/wintest ,存在文件夹testA.testB和testC,

每天一个linux命令(27)--tar命令

通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候 tar 命令就是必不可少的一个功能强大的工具.Linux 中最流行的 tar 是麻雀虽小,五脏俱全. tar 命令可以为Linux 的文件和目录创建档案,利用 tar, 可以为某一特定文件创建档案,也可以在档案中改变文件,或者向档案中加入新的文件.tar 最初被用来在磁带上创建档案,现在,用户可以在任何设备撒花姑娘穿件档案.利用tar 命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件

Linux 正文处理命令及tar命令

1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖)   2) 将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件/2.txt(追加) 3) 将/1.txt./2.txt两个文件打包为/1.tar 4) 使用gzip命令压缩1.txt文件名为1.txt.gz 5) 解压缩1.txt.gz 6) 使用bzip2压缩1.txt压缩后文件名为1.txt.bz2 7) 解压缩1.txt.bz2 8) 解包1.tar,解包后文件存放到/tmp目录下 9) 使用tar命

Linux下的tar命令

一.tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的参数是根据需要在压缩或解压档案时可选的. -z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出 下面的参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名. # tar -cf all.tar *.