everyday:linux tar

everyday:linux tar

[TOC]

功能说明

tar 命令: 为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。
利用tar,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。
打包,是指将一大堆文件或目录变成一个总的文件;压缩,是将一个大的文件通过一些压缩算法就一个小文件。
Linux中很多压缩程序只能针对一个文件进行压缩,这样当想要压缩一大堆文件时,得先将这一大堆文件先打包成一个包(tar),然后再用压缩程序进行压缩(gzip、bzip2)
使用tar打出来的包常称为tar包,tar包文件的命令通常都是以.tar结尾的,生成tar包后,就可以用其它的程序来进行压缩。

命令详解

  1. 命令格式
    tar [必要参数][可选参数][文件与目录]
  2. 命令功能

用来压缩和解压文件的,但本身不具有压缩功能,是调用其他的压缩功能实现的。

  1. 命令参数
    • 必要参数
-A 新增压缩文件到已存在的压缩
  -B 设置区块大小
  -c 建立新的压缩文件
  -d 记录文件的差别
  -r 添加文件到已经压缩的文件末尾
  -u 更新原压缩包中的文件,添加改变了和现有的文件到已经存在的压缩文件
  -x 从压缩的文件中提取文件
  -t 显示压缩文件的内容
  -z 支持gzip解压文件
  -j 支持bzip2解压文件
  -Z 支持compress解压文件
  -v 显示操作过程
  -l 文件系统边界设置
  -k 保留原有文件不覆盖
  -m 保留文件不被覆盖
  -W 确认压缩文件的正确性
  -O 将文件解开到标准输出
  -p 使用原文件的原来属性(属性不会依据使用者而变)
  -P 可以使用绝对路径来压缩!
  -N 比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
  --exclude file 在压缩的过程中,不要将FILE 打包!
- 可选参数
    -b 设置区块数目
  -C 切换到指定目录
  -f 指定压缩文件,在f 之后要立即接档名喔!不要再加参数!
  --help 显示帮助信息
  --version 显示版本信息
  1. 常用解压/压缩
    • .tar
    解压 tar xvf filename.tar
    压缩 tar cvf filename.tar dirname
- .gz
    解压 gunzip filename.gz or gzip -d filename.gz
    压缩 gzip filename
- .tar.gz and .tgz
    解压 tar zxvf filename.tar.gz
    压缩 tar zcvf filename.tar.gz dirname
- .bz2
    解压 bzip2 -d filename.bz2 or bunzip2 filename.bz2
    压缩 bzip2 -z filename
- .tar.bz2
    解压 tar jxvf filename.tar.bz2
    压缩 tar jcvf filename.tar.bz2 dirname
- .bz
    解压 bzip2 -d filename.bz or bunzip2 filename.bz
- .tar.bz
    解压 tar jxvf filename.tar.bz
- .Z
    解压 uncompress filename.Z
    压缩 compress filename
- .tar.Z
    解压 tar Zxvf filename.tar.Z
    压缩 tar Zcvf filename.tar.Z dirname
- .zip
    解压 unzip filename.zip
    压缩 zip filename.zip dirname
- .rar
    解压 rar x filename.rar or unrar e filename.rar
    压缩 rar a filename.rar dirname
  1. 举例
    • eg1 将文件全部打包成tar包
    // 仅打包,不压缩
  tar -cvf log.tar log.log
  tar -cvf /tmp/etc.tar /etc
  // 打包后,以 gzip 压缩
  tar -zcvf log.tar.gz log.log
  // 打包后,以 bzip2 压缩
  tar -jcvf log.tar.bz2 log.log
  ls -la *.tar*
> 上述指令在执行的时候,会显示一个警告讯息:`tar: Removing leading `/' from member names`,这是关于绝对路径的特殊设定.
> z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar包.
>  j 参数,则以 .tar.bz2 来代表 bzip 压缩过的 tar包.
+ eg2 查阅 tar 包内有哪些文件
  tar -ztvf log.tar.gz
> 使用 gzip 压缩的log.tar.gz,在查阅log.tar.gz包内的文件时,就得加上 z 这个参数。
+ eg3 将tar包解压缩
    tar -zxvf /opt/test/log.tar.gz
> 在预设的情况下,可以将压缩档在任何地方解开的
+ eg4 只将tar包内的部分文件解压出来
    tar -zcvf log.tar.gz log14.log log15.log
    tar -zxvf log.tar.gz log15.log
  cd test1
  tar -zxvf /opt/test/log.tar.gz log15.log
> 透过 tar -ztvf 来查阅 tar 包内的文件名称,如果单只要一个文件,就可以透过这个方式来解压部分文件!
+ eg5 文件备份下来,并且保存其权限
    tar -zcvpf log.tar.gz log2014.log log2015.log log2016.log
  cd test1
  tar -zxvpf /opt/test/log.tar.gz
> -p 的属性是很重要的,尤其是当要保留原本文件的属性时
+ eg6 在文件夹当中,比某个日期新的文件才备份
    tar -N "2015/04/10" -zcvf log.tar.gz test
+ eg7 备份文件夹内容时,排除部分文件
    tree scf
  tar --exclude scf/service -zcvf scf.tar.gz scf/*
+ eg8 解压到指定的目录
    tar zxvf /opt/test/log.tar.zip -C /opt/test1
> 前提要保证存在/opt/test1这个目录,和cp有点不同的是,cp时,如果不存在这个目录,就会自动创建这个目录。
+ eg9 将当前目录下的log文件打包到根目录下并命名为log.tar.gz
    tar zcvf /log.tar.gz ./log
+ eg10 将/etc/打包后直接解开在/tmp底下,而不产生文件
    cd /tmp
  tar -cvf - /etc | tar -xvf -
> 这个动作有点像是cp -r /etc /tmp
>
> 要注意的地方在於输出档变成- 而输入档也变成- ,又有一个|
>
> 分别代表standard output, standard input 与管线命令
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容