Linux文件的打包与压缩
打包命令: tar
tar 的选项与参数非常的多!我们只讲几个常用的选项,更多选项您可以自行 man tar 查询罗!
[root@www ~]# tar [-j|-z] [cv] [-f 创建的档名] filename... <==打包与压缩 |
其实最简单的使用 tar 就只要记忆底下的方式即可:
- 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
- 查 询:tar -jtv -f filename.tar.bz2
- 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
那个 filename.tar.bz2 是我们自己取的档名,tar 并不会主动的产生创建的档名喔!
我们要自订啦! 所以扩展名就显的很重要了!如果不加 [-j|-z] 的话,档名最好取为 *.tar 即可。
如果是 -j 选项,代表有 bzip2 的支持,因此档名最好就取为 *.tar.bz2 ,因为 bzip2 会产生 .bz2 的扩展名之故!
至於如果是加上了 -z 的 gzip 的支持,那档名最好取为 *.tar.gz 喔!了解乎?
另外,由於『 -f filename 』是紧接在一起的,过去很多文章常会写成『-jcvf filename』,这样是对的,
但由於选项的顺序理论上是可以变换的,所以很多读者会误认为『-jvfc filename』也可以~事实上这样会导致产生的档名变成 c !
因为 -fc 嘛!所以罗,建议您在学习 tar 时,将『 -f filename 』与其他选项独立出来,会比较不容易发生问题。
============================================================================================
以上选自:鸟哥的Linux私房菜
网址:http://vbird.dic.ksu.edu.tw/linux_basic/0240tarcompress_3.php
=============================================================================================
接下来,我实验一番。
1.准备文件
root@wuheng-virtual-machine:/home/wuheng/test# ls
a.txt b.txt c.txt
2.打包格式 如 filename.tar.gz ,即打包并压缩
root@wuheng-virtual-machine:/home/wuheng/test# tar -zcv -f test.tar.gz *.txt
a.txt
b.txt
c.txt
root@wuheng-virtual-machine:/home/wuheng/test# ls
a.txt b.txt c.txt test.tar.gz
root@wuheng-virtual-machine:/home/wuheng/test#
3.解压缩包 如 test.tar.gz
root@wuheng-virtual-machine:/home/wuheng/test# ls
a.txt b.txt c.txt test.tar.gz
root@wuheng-virtual-machine:/home/wuheng/test# rm -rf *.txt
root@wuheng-virtual-machine:/home/wuheng/test# ls
test.tar.gz
root@wuheng-virtual-machine:/home/wuheng/test#
a.压缩在当前目录下面
root@wuheng-virtual-machine:/home/wuheng/test# tar -zxv -f test.tar.gz
a.txt
b.txt
c.txt
root@wuheng-virtual-machine:/home/wuheng/test# ls
a.txt b.txt c.txt test.tar.gz
root@wuheng-virtual-machine:/home/wuheng/test#
b.压缩文件到指定目录下面
root@wuheng-virtual-machine:/home/wuheng/test# mkdir demo
root@wuheng-virtual-machine:/home/wuheng/test# ls
a.txt b.txt c.txt demo test.tar.gz
root@wuheng-virtual-machine:/home/wuheng/test# tree demo
demo
0 directories, 0 files
root@wuheng-virtual-machine:/home/wuheng/test#
root@wuheng-virtual-machine:/home/wuheng/test# tar -zxv -f test.tar.gz -C demo/
a.txt
b.txt
c.txt
root@wuheng-virtual-machine:/home/wuheng/test# tree demo
demo
├── a.txt
├── b.txt
└── c.txt
0 directories, 3 files
root@wuheng-virtual-machine:/home/wuheng/test#
4.查看当前压缩包文件包含的文件信息
root@wuheng-virtual-machine:/home/wuheng/test# ls
a.txt b.txt c.txt test.tar.gz
root@wuheng-virtual-machine:/home/wuheng/test# tar -ztv -f test.tar.gz
-rw-r--r-- root/root 26 2016-03-22 22:33 a.txt
-rw-r--r-- root/root 595 2016-03-22 22:36 b.txt
-rw-r--r-- root/root 62 2016-03-22 22:36 c.txt
root@wuheng-virtual-machine:/home/wuheng/test#
------------------------------------------------------------------------------------------------------
总结,上面的例子要是是 *.tar.gz ,还可以是 *.tar.bz2
压缩命令 :
root@wuheng-virtual-machine:/home/wuheng/test# ls
a.txt b.txt c.txt
root@wuheng-virtual-machine:/home/wuheng/test# tar -jcv -f demo.tar.bz2 *.txt
a.txt
b.txt
c.txt
root@wuheng-virtual-machine:/home/wuheng/test# ls
a.txt b.txt c.txt demo.tar.bz2
root@wuheng-virtual-machine:/home/wuheng/test#
查看压缩包命令:
root@wuheng-virtual-machine:/home/wuheng/test# tar -jtv -f demo.tar.bz2
-rw-r--r-- root/root 26 2016-03-22 22:33 a.txt
-rw-r--r-- root/root 595 2016-03-22 22:36 b.txt
-rw-r--r-- root/root 62 2016-03-22 22:36 c.txt
root@wuheng-virtual-machine:/home/wuheng/test#
解压命令:
root@wuheng-virtual-machine:/home/wuheng/test# rm -rf *.txt
root@wuheng-virtual-machine:/home/wuheng/test# ls
demo.tar.bz2
root@wuheng-virtual-machine:/home/wuheng/test#
root@wuheng-virtual-machine:/home/wuheng/test# tar -jxv -f demo.tar.bz2
a.txt
b.txt
c.txt
root@wuheng-virtual-machine:/home/wuheng/test# ls
a.txt b.txt c.txt demo.tar.bz2
root@wuheng-virtual-machine:/home/wuheng/test#
当然,可以解压到指定的目录中去。如: tar -jxv -f demo.tar.bz2 -C 指定目录地址
---------------------------------------------------------------------------------------------------
补充:
- 使用 tar 加入 -j 或 -z 的参数备份 /etc/ 目录
有事没事备份一下 /etc 这个目录是件好事!备份 /etc 最简单的方法就是使用 tar 罗!让我们来玩玩先:
[root@www ~]# tar -zpcv -f /root/etc.tar.gz /etc
tar: Removing leading `/' from member names <==注意这个警告信息
/etc/
....中间省略....
/etc/esd.conf
/etc/crontab
# 由於加上 -v 这个选项,因此正在作用中的档名就会显示在萤幕上。
# 如果你可以翻到第一页,会发现出现上面的错误信息!底下会讲解。
# 至於 -p 的选项,重点在於『保留原本文件的权限与属性』之意。 [root@www ~]# tar -jpcv -f /root/etc.tar.bz2 /etc
# 显示的信息会跟上面一模一样罗! [root@www ~]# ll /root/etc*
-rw-r--r-- 1 root root 8740252 Nov 15 23:07 /root/etc.tar.bz2
-rw-r--r-- 1 root root 13010999 Nov 15 23:01 /root/etc.tar.gz
[root@www ~]# du -sm /etc
118 /etc
# 为什么建议您使用 -j 这个选项?从上面的数值你可以知道了吧?^_^ 2016-0329补充信息
ZIP
zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。
缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。闲话少说,我们步入正题吧:
我们可以使用下列的命令压缩一个目录:
# zip -r archive_name.zip directory_to_compress
下面是如果解压一个zip文档:
# unzip archive_name.zip
Linux文件的打包与压缩的更多相关文章
- linux下文件的打包和压缩
文章来源:linux下文件的打包和压缩 目录 一.文件压缩的原理 二.linux常见的压缩指令 三.常用实例 1.tar命令 2.zip命令 3.gz命令 4.bz2命令 5.xz命令(必须分两步) ...
- Linux学习总结(十四) 文件的打包和压缩
文件的压缩和打包,在windos下我们很熟悉.rar和.zip文件,这是两种压缩文件,他们支持单个文件和多个文件的压缩.windos下我们不提及打包的概念,虽然多个文件的压缩肯定存在打包过程.打包和压 ...
- Linux 文件的打包压缩
压缩和解压 压缩:为了节约磁盘空间. gzip --- .gz bzip2 --- .bz2 xz --- .xz compress --- .z 压缩比例:xz > bzip2 > gz ...
- linux常用命令--打包和压缩文件
bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件 bzip2 file1 压缩一个叫做 'file1' 的文件 gunzip file1.gz 解压一个叫做 'file1 ...
- linux下的打包与压缩
linux压缩或解压缩工具有很多,除了已经很少有人使用的compress外,现在常用的还有tar,bzip2,xz 和gziplinux压缩或解压缩工具有很多,除了已经很少有人使用的compress外 ...
- Linux文件夹打包发送到本地
tar -cvf script.tar scriptsz script.tar 具体: sz/rz命令: 一般来说,linux服务器大多是通过ssh来进行远程的登陆和管理的,如何在命令方式下上传和 ...
- linux下的打包和压缩
linux中常见的两种压缩包文件的格式是.tar..gz和.tar.gz..tar仅仅是将文件简单地打包,文件的大小没有变化,也就是说.tar文件仅仅是一个包,没有被压缩:.tar.gz文件是打包后用 ...
- linux命令行打包、压缩及解压缩
使用命令: tar 打包: tar -zcvf 目标文件 源文件或文件夹 目标文件为要打包成的文件的文件名, 打包后文件的 格式取决于目标文件的后缀名 单文件或文件夹打包 tar -zcvf ind ...
- linux 文件的查找和压缩
1.使用 locate 命令 需要安装:yum install mlocate -y 创建或更新 slocate/locate 命令所必需的数据库文件:updatedb 作用:搜索不经常改变的文件如配 ...
随机推荐
- ios开发杂项(基础性介绍等)
IOS Xcode开发中的文件后缀名区别m,mm,cpp,h .h :头文件.头文件包含类,类型,函数和常数的声明. .m :源代码文件.这是典型的源代码文件扩展名,可以包含Objective-C和C ...
- git commit 出现 changes not staged for commit 错误
git commit 出现 changes not staged for commit 错误 修复: 参考:http://stackoverflow.com/questions/8488887/git ...
- HDU4920 Matrix multiplication 矩阵
不要问窝 为什么过了> < 窝也不造为什么就过了 说是%3变成稀疏矩阵 可是随便YY个案例都会超时.. . 看来数据是随机的诶 #include <stdio.h> #incl ...
- 算法笔记_098:蓝桥杯练习 算法提高 盾神与条状项链(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 有一天,盾神捡到了好多好多五颜六色的珠子!他心想这些珠子这么漂亮,可以做成一条项链然后送给他心仪的女生~于是他用其中一些珠子做成了长度为n ...
- Linux相关面试题&答案
Linux相关面试题&答案 Linux面试题&答案 假设apache日志格式为:118.78.199.98 – - [09/Jan/2010:00:59:59 +0800] " ...
- android项目解刨之时间轴
近期开发的app中要用到时间轴这东西.须要实现的效果例如以下: 想想这个东西应该能够用listview实现吧. 然后近期就模拟着去写了: 首先写 listview的item的布局: listview ...
- CodeIgniter 无法上传 CSV 文件
本篇文章由:http://xinpure.com/codeigniter-unable-to-upload-a-csv-file/ 解决 CodeIgniter 中使用 Upload 类无法上传 CS ...
- HTML5&CSS3初学者指南
介绍 网络时代已经到来.现在对人们来说,每天上网冲浪已经成为一种最为常见的行为. 一个典型的网页是由文本.图像和链接组成的.除去内容上的差异,不同网站的网页也具有不同的外观和感受,以实现在网络上建立自 ...
- 用Fiddler 发送post请求
在调试web api的时候,若是get 请求,可以直接在浏览器里查看结果,如果是put,或者post请求在浏览器地址栏里就没有办法了. 下面介绍一下,如何利用fiddler模拟post请求. 也可以用 ...
- jQuery Autocomplete 用户快速找到并从预设值列表中选择
jQuery Autocomplete 插件根据用户输入值进行搜索和过滤,让用户快速找到并从预设值列表中选择.通过给 Autocomplete 字段焦点或者在其中输入字符,插件开始搜索匹配的条目并显示 ...