前言:
接触Linux也有一段时间了,Linux上的命令也经常用到,但是没有详细的去了解过!比如tar命令,虽然平常也用到...所以决定有时间就开始整理整理!虽然对现在的编程作用不是特别大,但是毕竟还是有用的!所以决定花少量的时间来逐步整理,这样既不占用太多时间,也可以在编程之余,积累知识。
用法详解:
1.用法:tar [选项...] [FILE]
2.主操作模式:
-A 追加tar文件至归档(只能追加tar文件)
-c 创建一个新归档;
--delete 从归档(非磁盘)中删除
-r 追加文件至归档结尾
-t 列出归档内容
-u 仅追加比归档中副本更新的文件
-x 从归档中解出文件
3.辅助选项:
-f 使用归档(指定归档当名,其后直接跟档名,不能接其他选项)
--exclude FILE 文件(FILE)不加入归档
-a 使用归档后缀名来决定压缩程序
-j 通过bzip2过滤归档(归档是否具有bzip2的属性,如果有就使用bzip2进行 压缩或者解压操作,通常具有bzip2的属性的归档的形式为xxx.tar.bz2)
-z 通过gzip过滤归档(归档是否具有gzip的属性,如果有就使用gzip进行压 缩或者解压操作,通常具有gzip属性的归档的形式为xxx.tgz或者xxx.tar.gz)
-v 详细地列出处理的文件-C | --directory=DIR 改变至目录DIR
-? | --help 显示此帮助列表
--usage 显示间断用法说明
--version 打印程序版本
--restrict 禁用某些潜在的有危险的选项 tar --delete -vf hello.tar 1t
操作实例:
先进行tar的主要操作:
测试目录下创建3个文件夹(1d,2d,3d)和3个文件(1t,2t,3t)。
eg: tar -cvf hello.tar 1t 2t //创建一个新的归档hello.tar(要归档的可以是文件也可以是目录)
ps:禁止创建空的归档文件。上述例子仅仅是对1t,2t两个文件进行打包,没有压缩。
eg: tar -czvf hello.tar.gz *t *d //将测试目录下的所有文件都以gzip的方式压缩
eg: tar -cjvf hello.tar.bz2 *t *d //将测试目录下的所有文件都以bzip2的方式压缩
ps: 使用什么方式压缩就需要使用对应的方式对归档进行解压。
eg: tar -tjvf hello.tar.gz //列出归档中的内容
ps:列出归档内容时,也需要关注其是以什么样的方式压缩的。
eg: tar -xvf hello.tar //解压hello.tar(实际上并没有解压,只是简单的将归档打开)
eg: tar -xzvf hello.tar.gz //解压hello.tar.gz
eg: tar -xjvf hello.tar.bz2 //解压hello.tar.bz2
ps:解压时方式一定要对应不然会发生错误!归档解压时,默认情况下是解压到当前目录下。如果想要改变解压的目标目录需要-C选项。
====================================================================================================
eg:tar -Af hello.tar hello1.tar //追加hello1.tar至hello.tar末尾
ps:同类型之间追加,否则出错。
eg: tar --delete -vf hello.tar 1t //从归档hello.tar删除1t(文件)
eg: tar -cvf hello.tar *d --exclude 2d //将*d加入创建的归档hello.tar中,除去2d目录