tar 命令详解

tar 命令

[root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....
Usage: tar [OPTION...] [FILE]...
Examples:
        tar -cf archive.tar foo bar         # Create archive.tar from files foo and bar.
        tar -tvf archive.tar                    # List all files in archive.tar verbosely.
        tar -xf archive.tar                     # Extract all files from archive.tar.

更多帮助可以:man tar  或者  tar --help 查看帮助文档。

必选其中之一参数(而且 一次只能使用其中一个,不能同时使用多个):

(这五个参数是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用,但一次只能用其中一个)

-c:建立一个压缩文件的参数指令(create 的意思);  
-x:解开一个压缩文件的参数指令!  
-t:查看 tarfile 里面的文件!  
-r:向压缩归档文件末尾追加文件  
-u:更新原压缩包中的文件   

特别注意,在参数的下达中, c/x/t/r/u 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。

可选参数

下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性,即需要用 gzip 压缩  
-j:有bz2属性,即需要用 bzip2 压缩  
-Z:有compress属性的  
-v :压缩的过程中显示文件(显示所有过程)!这个常用,但不建议用在背景执行过程!  
-O:将文件解开到标准输出  
-f :使用档名,请留意,在 f 之后要立即接档名!不要再加参数!例如:使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成『 tar -zcvPf tfile sfile』才对喔! 
-p :使用原文件的原来属性(属性不会依据使用者而变)  
-P :可以使用绝对路径来压缩!  
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!  
--exclude FILE:在压缩的过程中,不要将 FILE 打包!    
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。 

# tar -cf all.tar *.jpg      // 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。  
# tar -rf all.tar *.gif         // 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。   
# tar -uf all.tar logo.gif   // 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。   
# tar -tf all.tar                 // 这条命令是列出all.tar包中所有文件,-t是列出文件的意思   
# tar -xf all.tar                 // 这条命令是解出all.tar包中所有文件,-x是解开的意思  

查看

tar -tf aaa.tar.gz    // 在不解压的情况下查看压缩包的内容 

压缩

tar -cvf jpg.tar *.jpg       // 将目录里所有jpg文件打包成tar.jpg  
tar -czf jpg.tar.gz *.jpg    // 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz  
tar -cjf jpg.tar.bz2 *.jpg   // 将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2  
tar -cZf jpg.tar.Z *.jpg     // 将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z  

解压

tar -xvf file.tar         // 解压 tar包
tar -zxvf file.tar.gz     // 解压 tar.gz  
tar -jxvf file.tar.bz2    // 解压 tar.bz2  
tar -Zxvf file.tar.Z      // 解压 tar.Z  

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 解压

范例:

(下面示例摘自《鸟哥的Linux私房菜基础篇》。鸟哥官网:鳥哥的 Linux 私房菜 -- 鳥哥的 Linux 私房菜 首頁)

范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar  
[root@linux ~]# tar -cvf /tmp/etc.tar /etc      <==仅打包,不压缩!  
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc  <==打包后,以 gzip 压缩  
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩  
# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。  
# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~  
# 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~  
# 上述指令在执行的时候,会显示一个警告讯息:  
# 『tar: Removing leading `/' from member names』那是关於绝对路径的特殊设定。  范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?  
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz  
# 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,  
# 就得要加上 z 这个参数了!这很重要的!  范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下  
[root@linux ~]# cd /usr/local/src  
[root@linux src]# tar -zxvf /tmp/etc.tar.gz  
# 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,  
# 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz ,  
# 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc  
# 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!  范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已  
[root@linux ~]# cd /tmp  
[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd  
# 我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,  
# 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!  范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!  
[root@linux ~]# tar -zcvpf /tmp/etc.tar.gz /etc  
# 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!  范例六:在 /home 当中,比 2005/06/01 新的文件才备份  
[root@linux ~]# tar -N '2005/06/01' -zcvf home.tar.gz /home  范例七:我要备份 /home, /etc ,但不要 /home/dmtsai  
[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc  范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!  
[root@linux ~]# cd /tmp  
[root@linux tmp]# tar -cvf - /etc | tar -xvf -  
# 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!  
# 要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~  
# 这分别代表 standard output, standard input 与管线命令啦!  
# 这部分我们会在 Bash shell 时,再次提到这个指令跟大家再解释啰! 

gzip 的压缩详解

gunzip的用法格式 gunzip [-acfhlLnNqrtvV][-s ][文件...]   或者gunzip [-acfhlLnNqrtvV][-s ][目录] 主要参数
-a 或 --ascii:使用ASCII文字模式。   
-c 或 --stdout 或 --to-stdout:把解压后的文件输出到标准输出设备。   
-f 或 -force: 强行解开压缩文件,不理会文件名称或硬连接是否存在,以及该文件是否为符号连接。   
-h 或 --help: 在线帮助。   
-l 或 --list: 列出压缩文件的相关信息。   
-L 或 --license: 显示版本与版权信息。   
-n 或 --no-name: 解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其忽略不予处理。   
-N 或 --name: 解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上。   
-q 或 --quiet:不显示警告信息。   
-r 或 --recursive: 递归处理,将指定目录下的所有文件及子目录一并处理。   
-S 或 --suffix:    更改压缩字尾字符串。   
-t 或 --test:      测试压缩文件是否正确无误。   
-v 或 --verbose:   显示指令执行过程。   
-V 或 --version:   显示版本信息。  gzip -c filename > filename.gz         // Linux压缩保留源文件的方法
gunzip -c filename.gz > filename       // Linux解压缩保留源文件的方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496975.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算器

计算器 转载于:https://www.cnblogs.com/zhuboxingzbx/archive/2007/12/23/1011706.html

Wing IDE 5.0 破解之寻找注册码

来源&#xff1a;http://bbs.pediy.com/showthread.php?p1253653 一&#xff0e; 工具&#xff1a; 1. uncompyle2 2. IDA Pro 6.1 3. WingIDE 5.0本身 二&#xff0e; 工具安装 1. 安装Python2.7 2. 安装WinIDE 5.0 3. 解压uncompyle2&#xff0c;进入解压目录&#…

C++学习之路 | PTA乙级—— 1029 旧键盘 (20 分)(精简)

1029 旧键盘 (20 分) 旧键盘上坏了几个键&#xff0c;于是在敲一段文字的时候&#xff0c;对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字&#xff0c;请你列出肯定坏掉的那些键。 输入格式&#xff1a; 输入在 2 行中分别给出应该输入的文字、以及…

深度|麦肯锡176页报告!解读数字中国领先全球的秘密

来源&#xff1a; 前瞻产业研究院2017年12月4日&#xff0c;麦肯锡发布了长达176页的中国数字经济报告。报告显示&#xff0c;中国电子商务&#xff08;2016年交易额占全球40%&#xff09;和数字支付&#xff08;2016年个人消费交易额交易额7900亿美元&#xff0c;是美国的11倍…

浅谈Springboot默认logger函数的使用

目录 前言1. logger日志2. 补充 前言 原先写过一篇logger日志函数的总结&#xff0c;不同的引用来源&#xff1a;java常见log日志的使用方法详细解析 但是为了不引入依赖包&#xff0c;更好的直接使用&#xff0c;总结了如下博文 1. logger日志 Spring Boot使用Spring框架中…

C++学习之路 | PTA乙级—— 1030 完美数列 (25 分)(精简)

1030 完美数列 (25 分) 给定一个正整数数列&#xff0c;和正整数 p&#xff0c;设这个数列中的最大值是 M&#xff0c;最小值是 m&#xff0c;如果 M≤mp&#xff0c;则称这个数列是完美数列。 现在给定参数 p 和一些正整数&#xff0c;请你从中选择尽可能多的数构成一个完美数…

find 和 xargs 和 locate

Linux 中 find 常见用法示例&#xff1a;http://blog.csdn.net/freeking101/article/details/51203183 1. find 命令选项。 find 命令的一般形式为&#xff1a;find pathname -options [-print -exec -ok] find 命令的参数&#xff1a; pathname find 命令所查找的目录路径。…

InfoPath中的Rich Text Box中如何加“回车”

InfoPath中的Rich Text Box中实现换行的方法&#xff1a; InfoPath中的Rich Text Box的内容使用的是XHtml的格式&#xff0c;所以"\n"格式内容是不会表现出来的。 如果我们需要在Rich Text Box中添加两行内容的话&#xff0c;我们可以用下面的代码。 X…

用互联网大脑架构预测2018年四个科技发展趋势

作者&#xff1a;互联网进化论作者&#xff0c;刘锋博士从本世纪处开始&#xff0c;随着人工智能&#xff0c;物联网&#xff0c;大数据&#xff0c;云计算&#xff0c;机器人&#xff0c;虚拟现实&#xff0c;工业互联网等科学技术的蓬勃发展&#xff0c;互联网类脑智能巨系统…

Python编程从入门到实践~文件读取

#读取整个文件 filename ./data/read.log with open(filename, r, encodingutf-8) as file_object:contents file_object.read()print(contents)#逐行读取 filename ./data/read.log with open(filename, r, encodingutf-8) as file_object:for line in file_object:print(l…

C++学习之路 | PTA乙级—— 1031 查验身份证 (15 分)(精简)

1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下&#xff1a; 首先对前17位数字加权求和&#xff0c;权重分配为&#xff1a;{7&#xff0c;9&#xff0c;10&#xff0c;5&#xff0c;8&#xff0c;4&#…

利用DAAB 获取存储过程返回值的方法

方法一 publicstaticAdoHelper helper AdoHelper.CreateHelper("sqlDA"); publicstaticstringcs WebConfigurationManager.AppSettings["SqlServerConnectionString"]; protectedvoidPage_Load(objectsender, EventArgs e) { IDataP…

Linux-----diff命令

Linux 基础命令――比较两个文件内容的不同 语法]: diff [参数] 文件1 文件2 [说明]: 本命令比较两个文本文件&#xff0c;将不同的行列出来 -b 将一串空格或TAB 转换成一个空格或TAB -e 生成一个编辑角本&#xff0c;作为ex 或ed 的输入可将文件1 转换成文件2 [例子]: diff …

骗子、假先知们一夜暴富背后:区块链是回归互联网本来意义的唯一希望|深度

文章转载于微信公众号机器之能&#xff08;ID&#xff1a;almosthuman2017&#xff09;来源&#xff1a;纽约时报杂志 编译&#xff1a;张震、Edison、Rik“编者按”&#xff1a;纽约时报的这篇区块链文章探讨到核心的问题了&#xff0c;互联网应用层分布式架构&#xff08;区块…

Python编程从入门到实践~文件写入

#写入文件 filename ./data/programming.log with open(filename, w) as file_object:file_object.write(I love programming.\n)file_object.write(I love creating new games.\n)#附加到文件 filename ./data/programming.log with open(filename, a) as file_object:file_…

C++学习之路 | PTA乙级—— 1032 挖掘机技术哪家强 (20 分)(精简)

1032 挖掘机技术哪家强 (20 分) 为了用事实说明挖掘机技术到底哪家强&#xff0c;PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。 输入格式&#xff1a; 输入在第 1 行给出不超过 10 ​5 ​​ 的正整数 N&#xff0c;即参赛人数。随后 N 行&…

css 中 float 和 clear 的作用

相当于原来的 align 的作用&#xff0c;但能力要比 align 强的多。一旦发出float:left或float:right命令&#xff0c;被我浮动的对像就会向左或向右移动直到遇到边框( border) 、填充( padding&#xff09; 、边界( margin &#xff09;或者另一个块对象的边缘为止。 经典样式&…

csplit 分割文件

csplit 按行分割&#xff0c;split 按大小分割。 csplit命令是split的一个变体&#xff0c;split只能够根据文件大小或行数来分割&#xff0c;但csplit能够根据文件本身特点来分割文件。 csplit命令用于将一个大文件分割成小的碎片&#xff0c;并且将分割后的每个碎片保存成一个…

深度解读:深度学习在IoT大数据和流分析中的应用

来源&#xff1a;网络大数据&#xff08;ID:raincent_com&#xff09;摘要&#xff1a;这篇论文对于使用深度学习来改进IoT领域的数据分析和学习方法进行了详细的综述。在物联网时代&#xff0c;大量的感知器每天都在收集并产生着涉及各个领域的数据。由于商业和生活质量提升方…