博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux tar命令简介
阅读量:6971 次
发布时间:2019-06-27

本文共 4568 字,大约阅读时间需要 15 分钟。

hot3.png

一、使用介绍

1、名词区分

打包:将一大堆文件或目录变成一个总的文件【tar命令】

压缩:将一个大的文件通过一些压缩算法变成一个小文件【gzip,bzip2等】

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

2、tar语法

语法:tar [主选项+辅选项] 文件或目录

使用该命令时,主选项必须有,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。

主选项:【一条命令以下5个参数只能有一个

-c: --create 新建一个压缩文档,即打包

-x: --extract,--get解压文件

-t: --list,查看压缩文档里的所有内容

-r:--append 向压缩文档里追加文件

-u:--update 更新原压缩包中的文件

辅助选项:

-z:是否同时具有gzip的属性?即是否需要用gzip压缩或解压?一般格式为xxx.tar.gz或xx.tgz

-j:是否同时具有bzip2的属性?即是否需要用bzip2压缩或解压?一般格式为xx.tar.bz2

-v:显示操作过程!这个参数很常用

-f:使用文档名,注意,在f之后要立即接文档名,不要再加其他参数!

-C:切换到指定目录

--exclude FILE:在压缩过程中,不要将FILE打包

二、例子

1、打包

习惯上以.tar后缀代表tar包,用xxx.tar.gz或.tgz代表gzip压缩过的tar文件,用.tar.bz2代表bzip2压缩过的tar文件。

将img1和img2两个文件夹打包成img.tar,仅打包不压缩

复制代码

liuxiaoyan@development:~/test$ tar -cvf img.tar img1 img2img1/img1/102.pngimg1/101.pngimg1/100.pngimg2/img2/105.pngimg2/104.pngimg2/103.pngliuxiaoyan@development:~/test$ lsimg1  img2  img.tar

复制代码

将img1和img2两个文件夹打包成img.tar.gz,打包后,以gzip压缩

复制代码

liuxiaoyan@development:~/test$ tar -zcvf img.tar.gz img1 img2img1/img1/102.pngimg1/101.pngimg1/100.pngimg2/img2/105.pngimg2/104.pngimg2/103.pngliuxiaoyan@development:~/test$ lsimg1  img2  img.tar  img.tar.gz

复制代码

将img1和img2两个文件夹打包成img.tar.bz2,打包后,以bzip2来压缩

复制代码

liuxiaoyan@development:~/test$ tar -jcvf img.tar.bz2 img1 img2img1/img1/102.pngimg1/101.pngimg1/100.pngimg2/img2/105.pngimg2/104.pngimg2/103.pngliuxiaoyan@development:~/test$ lsimg1  img2  img.tar  img.tar.bz2  img.tar.gz

复制代码

2、不解压的情况下查看

查看img.tar中的所有内容

复制代码

liuxiaoyan@development:~/test$ tar -tf img.tarimg1/img1/102.pngimg1/101.pngimg1/100.pngimg2/img2/105.pngimg2/104.pngimg2/103.png

复制代码

查看img.tar.gz的所有内容

加-v参数查看详细信息,-z可有可无

复制代码

liuxiaoyan@development:~/test$ tar -tf img.tar.gzimg1/img1/102.pngimg1/101.pngimg1/100.pngimg2/img2/105.pngimg2/104.pngimg2/103.pngliuxiaoyan@development:~/test$ tar -ztf img.tar.gzimg1/img1/102.pngimg1/101.pngimg1/100.pngimg2/img2/105.pngimg2/104.pngimg2/103.pngliuxiaoyan@development:~/test$ tar -ztvf img.tar.gzdrwxrwxr-x liuxiaoyan/liuxiaoyan 0 2015-05-20 22:09 img1/-rw-r--r-- liuxiaoyan/liuxiaoyan 1952 2015-05-20 22:08 img1/102.png-rw-r--r-- liuxiaoyan/liuxiaoyan 2344 2015-05-20 22:08 img1/101.png-rw-r--r-- liuxiaoyan/liuxiaoyan 1995 2015-05-20 22:09 img1/100.pngdrwxrwxr-x liuxiaoyan/liuxiaoyan    0 2015-05-20 22:10 img2/-rw-r--r-- liuxiaoyan/liuxiaoyan 1922 2015-05-20 22:09 img2/105.png-rw-r--r-- liuxiaoyan/liuxiaoyan 1546 2015-05-20 22:08 img2/104.png-rw-r--r-- liuxiaoyan/liuxiaoyan 2033 2015-05-20 22:08 img2/103.png

复制代码

查看img.tar.bz2内容

加-v参数查看详细信息,-j可有可无

复制代码

liuxiaoyan@development:~/test$ tar -tf img.tar.bz2 img1/img1/102.pngimg1/101.pngimg1/100.pngimg2/img2/105.pngimg2/104.pngimg2/103.pngliuxiaoyan@development:~/test$ tar -jtf img.tar.bz2  img1/img1/102.pngimg1/101.pngimg1/100.pngimg2/img2/105.pngimg2/104.pngimg2/103.pngliuxiaoyan@development:~/test$ tar -jtvf img.tar.bz2 drwxrwxr-x liuxiaoyan/liuxiaoyan 0 2015-05-20 22:09 img1/-rw-r--r-- liuxiaoyan/liuxiaoyan 1952 2015-05-20 22:08 img1/102.png-rw-r--r-- liuxiaoyan/liuxiaoyan 2344 2015-05-20 22:08 img1/101.png-rw-r--r-- liuxiaoyan/liuxiaoyan 1995 2015-05-20 22:09 img1/100.pngdrwxrwxr-x liuxiaoyan/liuxiaoyan    0 2015-05-20 22:10 img2/-rw-r--r-- liuxiaoyan/liuxiaoyan 1922 2015-05-20 22:09 img2/105.png-rw-r--r-- liuxiaoyan/liuxiaoyan 1546 2015-05-20 22:08 img2/104.png-rw-r--r-- liuxiaoyan/liuxiaoyan 2033 2015-05-20 22:08 img2/103.png

复制代码

3、解压

将img.tar减压到temp目录

liuxiaoyan@development:~/test$ cd temp/liuxiaoyan@development:~/test/temp$ lsliuxiaoyan@development:~/test/temp$ tar -xf ../img.tarliuxiaoyan@development:~/test/temp$ lsimg1  img2

只减压img.tar中的img1

liuxiaoyan@development:~/test/temp$ tar -xf ../img.tar img1liuxiaoyan@development:~/test/temp$ lsimg1

4、更新

现在给movies文件下新建一个文件movie2.txt,然后更新enjoy.tar

$ tar -cf img.tar img1 img2给img1增加了一张照片,现在用下面命令更新img.tar$ tar -uf img.tar img1

5、追加

$ tar -cf img.tar img1 img2img.tar里追加一个文件夹img3$ tar -rf img.tar img3

6、-C参数

-C(大C参数很有用,改变文件目录,多层时用)  -C, --directory=DIR        change to directory DIR

使用了-C参数改变目录为-C后面 目录,不管是在打包还是解压都很有用。

用法:tar temp.tar file -C fileDir

$ cd temp$ lsimg1  img2  img3$ tar -cf img.tar temp/*这样打包会将temp目录也打包进去,使用下面带有-C参数的命令可以去掉路径信息$ tar -cf img.tar * -C temp

 解压img.tar到当前目录下的temp目录

$ tar -xf img.tar -C temp

三、解压方法总结

1、*.tar 用 tar –xvf 解压

2、*.gz 用 gzip -d或者gunzip 解压

3、*.tar.gz和*.tgz 用 tar –xzf 解压

4、*.bz2 用 bzip2 -d或者用bunzip2 解压

5、*.tar.bz2用tar –xjf 解压

6、*.Z 用 uncompress 解压

7、*.tar.Z 用tar –xZf 解压

8、*.rar 用 unrar x 解压

9、*.zip 用 unzip 解压

使用unrar注意

先安装unrar,使用unrar不带参数运行一下就可以看到帮助信息。

如果一个文件s.rar,里面有1000首歌,用e参数,就直接把1000首歌全减压出来到当前目录。

如果是x参数,解压后,所有内容都放在同名的文件夹里面。

资源链接:

 

转载于:https://my.oschina.net/airship/blog/1574253

你可能感兴趣的文章
Leetcode c语言-Permutations
查看>>
《javascript设计模式》阅读笔记
查看>>
JQuery基础总结上
查看>>
postgresql 备份
查看>>
Cocos2d-x调用Java 代码
查看>>
close方法
查看>>
如何为crontab调度运行的多脚本设置共享的环境变量?
查看>>
bash字符串匹配
查看>>
选择设置好ext3日志模式
查看>>
程序员专用经典语录
查看>>
网络爬虫
查看>>
iOS开发基础
查看>>
5 创建型模式-----原型模式
查看>>
C++:vector中的resize()函数 VS reserve()函数
查看>>
JS对象和数组
查看>>
CodeForces - 1105C (dp)
查看>>
安装服务windows,installutil
查看>>
斐波那契数列
查看>>
如何在android程序中使用百度api接口:
查看>>
一位10年Java工作经验的架构师聊Java和工作经验
查看>>