tar命令
[root@linux~]# tar [-cxtzjvfpPN]文件和目录.
参数:
-c (创建压缩文件的参数指令(create的含义);
- x :求解一个压缩文件的参数指令!
看看tarfile里的文件!
请特别注意,在参数的发布中,只存在一个c/x/t! 不能同时存在!
因为压缩和解压缩不能同时进行。
- z :也有gzip的属性吗? 也就是说,需要用gzip压缩吗?
- j :你也有bzip2的属性吗? 也就是说,需要用bzip2压缩吗?
-v :压缩时显示文件! 这是常用的,但不推荐用于后台运行进程!
-f :使用文件名。 请注意在f之后立即连接文件名。 不要添加参数!
例如,使用“tar -zcvfP tfile sfile”是错误的写法,是写作
《tar-zcvpf文件文件文件》真好。
-p :使用原始文档的原始属性(属性不会因用户而异) ) ) )。
-P :可以使用绝对路径压缩!
-N :比后续日期(yyyy/mm/dd )更新的内容将打包到新文件中!
--exclude FILE :压缩过程中,请勿打包文件!
示例:
将整个yhdxlz:/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参数后,gzip压缩的tar file~
如果输入#j参数,就会将. tar.bz2作为文件名哦~
#执行上述命令后,将显示警告消息。
#“tar : removing leading `/' frommembernames”是绝对路径的特殊设置。
示例2 :请参阅上述/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/不同。
我只是想在tydxd:/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-zxvpf/tmp/etc.tar.gz/etc
#此-p的属性很重要。 特别是在保留原始文件的属性时很重要。
xdxy:/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 my file.tar.gz/home/*/etc
示例/etc/打包后,不生成文件,直接解压缩到/tmp下!
[root@linux~]# cd /tmp
[root@linuxtmp]# t
ar -cvf - /etc | tar -xvf -#这个动作有点像是cp-r/etc /tmp啦~依旧是有其有用途的!
#要注意的地方在於输出档变成-而输入档也变成-,又有一个|存在~
#这分别代表standard output, standard input与管线命令啦!
#这部分我们会在Bash shell时,再次提到这个指令跟大家再解释啰!
ZIP
zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux,Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。闲话少说,我们步入正题吧:
我们可以使用下列的命令压缩一个目录:
# zip -r archive_name.zip directory_to_compress
下面是如果解压一个zip文档:
# unzip archive_name.zip
TAR
Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。下面是如何打包一个目录:
# tar -cvf archive_name.tar directory_to_compress
如何解包:
# tar -xvf archive_name.tar.gz
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来设置解包的路径:
# tar -xvf archive_name.tar -C /tmp/extract_here/
TAR.GZ
这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。使用下面这种格式去压缩一个目录:
# tar -zcvf archive_name.tar.gz directory_to_compress
解压缩:
# tar -zxvf archive_name.tar.gz
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来设置解包的路径:
# tar -zxvf archive_name.tar.gz -C /tmp/extract_here/
TAR.BZ2
这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。这个就是你如何使用tar.bz2进行压缩。
# tar -jcvf archive_name.tar.bz2 directory_to_compress
#bzip2 -d archive_name.tar.bz2
然后:
tar -xvf archive_name.tar即可
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来设置解包的路径:
# tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/
数据压缩是非常有用的,尤其是对于备份来说。所以,你现在应该考虑在你的备份脚本中使用你在这里学到的压缩方式备份你基本的规则文件以减小你备份文件的大小。
过段时间之后,你就会意识到,在压缩率与CPU占用时间上会有一个平衡,你也要学会如何去权衡什么时候你需要一个快但是压缩率低,什么时候需要一个压缩率高但是CPU点用高的压缩方式,然后你才能避免无谓的空间与时间。