打包命令: tar

tar 的选项与参数非常的多!我们只讲几个常用的选项,更多选项您可以自行 man tar 查询罗!

[root@www ~]# tar [-j|-z] [cv] [-f 创建的档名] filename... <==打包与压缩
[root@www ~]# tar [-j|-z] [tv] [-f 创建的档名] <==察看档名
[root@www ~]# tar [-j|-z] [xv] [-f 创建的档名] [-C 目录] <==解压缩
选项与参数:
-c :创建打包文件,可搭配 -v 来察看过程中被打包的档名(filename)
-t :察看打包文件的内容含有哪些档名,重点在察看『档名』就是了;
-x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
特别留意的是, -c, -t, -x 不可同时出现在一串命令列中。
-j :透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2
-z :透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz
-v :在压缩/解压缩的过程中,将正在处理的档名显示出来!
-f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选项罗!
-C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。 其他后续练习会使用到的选项介绍:
-p :保留备份数据的原本权限与属性,常用於备份(-c)重要的配置档
-P :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
--exclude=FILE:在压缩的过程中,不要将 FILE 打包!

其实最简单的使用 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文件的打包与压缩的更多相关文章

  1. linux下文件的打包和压缩

    文章来源:linux下文件的打包和压缩 目录 一.文件压缩的原理 二.linux常见的压缩指令 三.常用实例 1.tar命令 2.zip命令 3.gz命令 4.bz2命令 5.xz命令(必须分两步) ...

  2. Linux学习总结(十四) 文件的打包和压缩

    文件的压缩和打包,在windos下我们很熟悉.rar和.zip文件,这是两种压缩文件,他们支持单个文件和多个文件的压缩.windos下我们不提及打包的概念,虽然多个文件的压缩肯定存在打包过程.打包和压 ...

  3. Linux 文件的打包压缩

    压缩和解压 压缩:为了节约磁盘空间. gzip --- .gz bzip2 --- .bz2 xz --- .xz compress --- .z 压缩比例:xz > bzip2 > gz ...

  4. linux常用命令--打包和压缩文件

    bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件 bzip2 file1 压缩一个叫做 'file1' 的文件 gunzip file1.gz 解压一个叫做 'file1 ...

  5. linux下的打包与压缩

    linux压缩或解压缩工具有很多,除了已经很少有人使用的compress外,现在常用的还有tar,bzip2,xz 和gziplinux压缩或解压缩工具有很多,除了已经很少有人使用的compress外 ...

  6. Linux文件夹打包发送到本地

    tar -cvf script.tar scriptsz script.tar 具体:  sz/rz命令:  一般来说,linux服务器大多是通过ssh来进行远程的登陆和管理的,如何在命令方式下上传和 ...

  7. linux下的打包和压缩

    linux中常见的两种压缩包文件的格式是.tar..gz和.tar.gz..tar仅仅是将文件简单地打包,文件的大小没有变化,也就是说.tar文件仅仅是一个包,没有被压缩:.tar.gz文件是打包后用 ...

  8. linux命令行打包、压缩及解压缩

    使用命令: tar 打包: tar -zcvf  目标文件 源文件或文件夹 目标文件为要打包成的文件的文件名, 打包后文件的 格式取决于目标文件的后缀名 单文件或文件夹打包 tar -zcvf ind ...

  9. linux 文件的查找和压缩

    1.使用 locate 命令 需要安装:yum install mlocate -y 创建或更新 slocate/locate 命令所必需的数据库文件:updatedb 作用:搜索不经常改变的文件如配 ...

随机推荐

  1. windows print 自定义字体颜色【python】

    windows print 自定义字体颜色 import ctypes STD_INPUT_HANDLE = -10 STD_OUTPUT_HANDLE= -11 STD_ERROR_HANDLE = ...

  2. Simple Factory (简单工厂模式)

    简单工厂模式不是23种设计模式之一,简单工厂模式属于创建型模式, 又叫做静态工厂方法(Static Factory Method) 简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模 ...

  3. Chrome Dev Editor:一个新的JavaScript和Dart IDE

    在Google IO 2014期间,一位Google工程师带来了Chrome Dev Editor(CDE).该IDE用于创建面向桌面和移动设备的Chrome应用程序和Web应用程序.CDE支持Jav ...

  4. C++的泛型编程方式

    1.使用类模板创建数组 下面这段代码:是创建一个元素为 T 类型的数组. #pragma once template<class T> class MyArray { public: // ...

  5. Lintcode---区间最小数

    给定一个整数数组(下标由 0 到 n-1,其中 n 表示数组的规模),以及一个查询列表.每一个查询列表有两个整数 [start, end]. 对于每个查询,计算出数组中从下标 start 到 end ...

  6. 1px 下划线solid的问题

    1 物理像素线,也就是普通屏幕下 1px,高清屏幕下 0.5px的情况,采用transform属性 scale 实现即可. .mod_grid { position: relative; &: ...

  7. jfinal的configPlugin基本配置代码

    直接上代码: public void configPlugin(Plugins me) { // 这里是在数据库的配置文件中读取数据库的一些信息 DruidPlugin dbPlugin = new ...

  8. SET QUOTED_IDENTIFIER OFF语句的作用 转载

    SET QUOTED_IDENTIFIER ON SELECT * FROM "USER" WHERE a='netasp' SET QUOTED_IDENTIFIER ON SE ...

  9. MapReduce编程(七) 倒排索引构建

    一.倒排索引简单介绍 倒排索引(英语:Inverted index),也常被称为反向索引.置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射. ...

  10. Apache 虚拟目录和默认首页的设置

    Apache虚拟目录和默认首页的设置,用apache服务器的朋友必须要懂的. 虚拟目录 1.找到"conf/httpd.conf" 文件 2.在节点:<IfModule al ...