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)[root@localhost Documents]# tar -cvf Dir.tar Dir           f选项参数是必不可少的,这里以普通压缩格式压缩文件夹   

[root@localhost Documents]# tar -cvf Dir.tar Dir
Dir/
Dir/head_text
Dir/less1
Dir/less2
[root@localhost Documents]# ll
总用量
-rwx--xrwx. root root 5月 : core.log
dr-xr-xr-x. root root 5月 : Dir
-rw-r--r--. root root 5月 : Dir.tar
-r--r--r--. root root 5月 : find
dr--r--r--. root root 5月 : findDir
-r--r--r--. root root 5月 : newlocate
-rw-r--r--. root root 5月 : t3.txt
--w-------. root root 5月 : tail_text
--w-------. root root 5月 : tempory
--w-------. root root 5月 : uText

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

[root@localhost Documents]# tar -czvf Dir.tar.gz Dir
Dir/
Dir/head_text
Dir/less1
Dir/less2
[root@localhost Documents]# tar -cjvf Dir.tar.bz2 Dir
Dir/
Dir/head_text
Dir/less1
Dir/less2
[root@localhost Documents]# ll
总用量
-rwx--xrwx. root root 5月 : core.log
dr-xr-xr-x. root root 5月 : Dir
-rw-r--r--. root root 5月 : Dir.tar
-rw-r--r--. root root 5月 : Dir.tar.bz2 //公认的后缀名,以bzip2压缩
-rw-r--r--. root root 5月 : Dir.tar.gz //公认的后缀名,以Gzip压缩
-r--r--r--. root root 5月 : find
dr--r--r--. root root 5月 : findDir
-r--r--r--. root root 5月 : newlocate
-rw-r--r--. root root 5月 : t3.txt
--w-------. root root 5月 : tail_text
--w-------. root root 5月 : tempory
--w-------. root root 5月 : uText
-rw-r--r--. root root 5月 : vf

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

[root@localhost Documents]# tar -ztvf Dir.tar.gz
dr-xr-xr-x root/root -- : Dir/
-r-xr-xr-x root/root -- : Dir/head_text
-r-xr-xr-x root/root -- : Dir/less1
-r-xr-xr-x root/root -- : Dir/less2
[root@localhost Documents]# tar -jtvf Dir.tar.bz2
dr-xr-xr-x root/root -- : Dir/
-r-xr-xr-x root/root -- : Dir/head_text
-r-xr-xr-x root/root -- : Dir/less1
-r-xr-xr-x root/root -- : Dir/less2

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

[root@localhost findDir]# tar -zxvf Dir.tar.gz Dir
Dir/
Dir/head_text
Dir/less1
Dir/less2
[root@localhost findDir]# ll
总用量
dr-xr-xr-x. root root 5月 : Dir
-rw-r--r--. root root 5月 : Dir.tar
-rw-r--r--. root root 5月 : Dir.tar.bz2
-rw-r--r--. root root 5月 : Dir.tar.gz
-r--r--r--. root root 5月 : p1.pdf
-r--r--r--. root root 5月 : p2.pdf
-r--r--r--. root root 5月 : t1.txt
-r--r--r--. root root 5月 : T1.txt
-r--r--r--. root root 5月 : t2.txt
-r--r--r--. root root 5月 : T2.txt

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

[root@localhost findDir]# tar -jxvf Dir.tar.bz2 Dir/less1
Dir/less1

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

[root@localhost Documents]# tar -pzcvf P.tar.gz find t3.txt vf uText
find
t3.txt
vf
uText

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

[root@localhost Documents]# tar -zcvf P1.tar.gz find t3.txt vf uText               //没有p参数的打包并压缩
find
t3.txt
vf
uText
[root@localhost Documents]# ll
总用量
-rwx--xrwx. root root 5月 : core.log
dr-xr-xr-x. root root 5月 : Dir
-r--r--r--. root root 5月 : find
dr--r--r--. root root 5月 : findDir
-r--r--r--. root root 5月 : newlocate
-rw-r--r--. root root 5月 : P1.tar.gz //没有p参数
-rw-r--r--. root root 5月 : P.tar.gz //有p参数
-rw-r--r--. root root 5月 : t3.txt
--w-------. root root 5月 : tail_text
--w-------. root root 5月 : tempory
--w-------. root root 5月 : uText
-rw-r--r--. root root 5月 : vf
[root@localhost Documents]# mkdir Pdir
[root@localhost Documents]# tar -zxvf P.tar.gz -C Pdir //指定解压缩的路径
find
t3.txt
vf
uText
[root@localhost Documents]# mkdir NoPdir
[root@localhost Documents]# tar -zxvf P1.tar.gz -C NoPdir
find
t3.txt
vf
uText
[root@localhost Documents]# ls -l Pdir //查看有p无p的区别
总用量
-r--r--r--. root root 5月 : find
-rw-r--r--. root root 5月 : t3.txt
--w-------. root root 5月 : uText
-rw-r--r--. root root 5月 : vf
[root@localhost Documents]# ls -l NoPdir
总用量
-r--r--r--. root root 5月 : find
-rw-r--r--. root root 5月 : t3.txt
--w-------. root root 5月 : uText
-rw-r--r--. root root 5月 : vf          //并没有发现有什么区别

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

[root@localhost Documents]# tar -N "2016/05/20" -zcvf .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)[root@localhost Documents]# tar --exclude Dir/less1 -zcvf Dir.test2.tar.gz Dir      打包时不包括特定目录下的文件

[root@localhost Documents]# tar --exclude ./Dir/less1 -zcvf Dir.test.tar.gz Dir       //这里目录加个./,经后续验证,没有达到不包括的效果
Dir/
Dir/head_text
Dir/less1
Dir/less2
[root@localhost Documents]# tar -ztvf Dir.test.tar.gz
dr-xr-xr-x root/root -- : Dir/
-r-xr-xr-x root/root -- : Dir/head_text
-r-xr-xr-x root/root -- : Dir/less1
-r-xr-xr-x root/root -- : Dir/less2
[root@localhost Documents]# tar --exclude Dir/less1 -zcvf Dir.test2.tar.gz Dir
Dir/
Dir/head_text
Dir/less2
[root@localhost Documents]# tar -ztvf Dir.test2.tar.gz
dr-xr-xr-x root/root -- : Dir/
-r-xr-xr-x root/root -- : Dir/head_text
-r-xr-xr-x root/root -- : Dir/less2

      (5)其他:

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

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

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

    第八单元 正文处理命令及tar命令 使用cat命令进行文件的纵向合并 两种文件的纵向合并方法 归档文件和归档技术 归档的目的 什么是归档 tar命令的功能 tar命令的常用选项 使用tar命令创建.查 ...

  2. linux中的 tar命令的 -C 参数,以及其它一些参数(转)

    linux中的 tar命令的 -C 参数,以及其它一些参数 复制源:http://www.cnblogs.com/li-hao/archive/2011/10/03/2198480.htmltar命令 ...

  3. Linux压缩打包tar命令总结

      命令简介   在Linux系统的维护.管理中,tar命令是一个使用频率很高的命令,tar命令的功能主要是将众多文件打包成一个tar文件并压缩,并且能保持文件的权限属性.tar其实最开始是用来做磁带 ...

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

    tar命令的-C参数    $ tar -cvf file2.tar /home/usr2/file2 tar: Removing leading '/' from members names hom ...

  5. Linux基础(3)- 正文处理命令及tar命令、vi编辑器、硬盘分区、格式化及文件系统的管理和软连接、硬连接

    一.正文处理命令及tar命令 1)  将用户信息数据库文件和组信息数据库文件纵向合并为一个文件1.txt(覆盖) 2)  将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件2.txt(追加) ...

  6. Linux命令学习-tar命令

    Linux中,tar命令的全称是tape archive,主要作用是压缩和解压文件. 参数说明: -c 创建新的压缩档案 -x 解压档案 -t 列出压缩档案的内容 -z 使用gzip来解压和压缩,文件 ...

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

    通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候 tar 命令就是必不可少的一个功能强大的工具.Linux 中最流行的 tar 是麻雀虽小,五脏俱全. tar 命令可以为Linux ...

  8. Linux使用快捷键,who命令,rm命令,ps命令,cd,命令kill命令,find命令,grep命令,tar命令(gz、tar、bz2),用户管理,vim配置的一部分,相关命令

    1.进入Ubuntu开场后的终端窗口的快捷键是:           ctrl + alt+t:通过这个命令能够打开终端. ctrl + alt+t:通过这个命令能够打开终端. 再开一个tab选项卡式 ...

  9. Linux 正文处理命令及tar命令 利用vi编辑器创建和编辑正文文件

    要点回顾 1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cp /etc/passwd . cat ./passwd >1.txt cp /etc/group ...

  10. linux下使用tar命令

    解压语法:tar [主选项+辅选项] 文件或者目录 使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用. 主选项: c 创建新的档案文件.如果用户想备份一个目录或 ...

随机推荐

  1. JQuery加载并解析XML

    转自http://blog.csdn.net/pan_junbiao/article/details/7441003,致谢! 1.简述 XML(eXtensible Markup Language)即 ...

  2. C# 接口的隐式与显示实现说明

    以前在用到接口时,从来没注意到接口分为隐式实现与显示实现.昨天在浏览博客时看到相关内容,现在根据自己的理解记录一下,方便日后碰到的时候温习温习. 通俗的来讲,"显示接口实现"就是使 ...

  3. 涛哥的Python工具箱之批量删除含指定字符串行

    我们在软件研发中不可避免的要用到大量的反复性的繁琐的工作,比如批量改动代码中接口的字符串.批量下载文件并又一次按规则命名.这些工作人工做特别累,尤其是对我这样的懒人来说. 对于一个出色的程序猿来说,反 ...

  4. [码海拾贝 之Perl]在字符串数组中查找特定的字符串是否存在

    前言 检索一个字符串是否存在于一个数组中, 最主要的想法应该就是对数组进行循环, 逐个推断数组的每一个元素值和给定的值是否相等. (在Java语言还能够把数组转成 List , 在 list 中直接有 ...

  5. android 常用方法总结

    public class Toolkit { /** * * Role:Telecom service providers获取手机服务商信息 <BR> * * 需要加入权限<uses ...

  6. 【puppeteer+Node.js安装环境】之步骤

    步骤一:首先,安装node.js环境,从官网下载最新的安装包. 步骤二:安装完成之后,再安装npm,通过命令行输入:npm install -g cnpm --registry=https://reg ...

  7. 对无向图的深度优先搜索(DFS)

    [0]README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解 如何对无向图进行深度优先搜索 的idea 并用源代码加以实现: 0.2) 本文还引入了 背向边(定义见下文 ...

  8. cocos2d-x 2.x 支持多个方向屏幕翻转

    主要改动 RootViewController.mm 的 supportedInterfaceOrientations 方法 1.四个方向 UIInterfaceOrientationMaskAll ...

  9. STM32 Option Bytes位 重置为出厂设置

    STM32 Option Bytes位 重置为出厂设置 JLINK 按照说明,在IAR安装目录下找到指定的运行程序JLinkSTM32.exe(D:\Program Files (x86)\IAR S ...

  10. Laravel开发:Laravel核心——Ioc服务容器源码解析(服务器绑定)

    服务容器的绑定 bind 绑定 bind 绑定是服务容器最常用的绑定方式,在 上一篇文章中我们讨论过,bind 的绑定有三种: 绑定自身 绑定闭包 绑定接口 今天,我们这篇文章主要从源码上讲解 Ioc ...