1-9-文件的归档和压缩


时间:2018-05-29 姓名:魏文应


一、tar工具

tar工具可以进行压缩、打包文件。

语法:tar [参数] [生成的包的名称] [将要打包或解压的目标文件/目录]

参数 说明
-c create 创建文件
-x 解压还原文件
-v 显示执行详细过程,解压过程打印一些信息
-f 指定备份文件
-t 列出备份文件内容
-P(大写) 在使用绝对路径时,不移除文件名称前的根号
-C (大写) 指定解压位置
-z 通过 gzip 进行压缩
-j 通过 bzip2 解压缩

二、创建归档

这里是将文件打包成一个文件,但还没有压缩。

  • 打包一个文件:

    # 将/boot/grub/目录下的内容打包
    # 打包以后生成一个grub.tar文件
    # -c 参数是创建包,-v参数显示压缩过程,f是指定文件。
    tar -cvf grub.tar /boot/grub/
    
  • 1-9-文件的归档和压缩_第1张图片
    提示去掉根目录
  • 如果你的文件想保留 根/ ,那么你可以加上参数 -P (大写P):

    tar -cvPf grub-1.tar /boot/grub/
    
  • 把多个文件打成一个包:tar -cvf test.tar a.txt b.txt c.txt (将a.txt、b.txt、c.txt这三个文件成一个test.tar包)。

三、查看压缩包里面的内容

  • 查看压缩包里面的内容(就像你在桌面直接双击一个压缩包文件一样,可以看到里面的文件列表,但没有解压开):

    # 查看,并通过more分页显示
    tar -tvf grub.tar | more
    
  • 1-9-文件的归档和压缩_第2张图片
    查看压缩包内容

四、Linux压缩工具

  • 压缩工具: gzip、 bzip2、 zip、 tar。

    参数 说明 一般文件后缀命名 压缩示例 解压示例
    -z 通过gzip工具压缩 .tar.gz tar -czvf test.tar.gz tar -xzvf test.tar.gz
    -j 通过bzip2工具压缩 .tar.bz2 tar -cjvf test.tar.gz tar -xjvf test.tar.gz
    -- 通过zip工具压缩 .zip zip test.zip /etc/passwd unzip test.zip
  • 常见的压缩格式:gz、 bz2、 xz、 zip、 Z 。

  • 使用gzip工具压缩tar -zcvf newfile.tar.gz SOURCE(-z参数表示压缩) 。

  • 1-9-文件的归档和压缩_第3张图片
    tar压缩gz
  • 使用bzip2工具压缩: tar -jcvf newfile.tar.bz2 SOURCE (-j参数表示压缩) 。

  • 使用zip工具压缩(直接压缩,不像tar那样先归档后压缩): zip test.zip SOURCE 。如果是压缩的对象时目录,要使用 -r 参数 :zip -r test.zip /tmp/tmp-dir/(将/tmp/tmp-dir/这个目录下所有内容进行打包压缩):

  • 1-9-文件的归档和压缩_第4张图片
    各种压缩工具压缩文件情况

专门用于压缩的工具

有一些工具专门用于压缩(其实tar会调用它们):gzip、 bzip2、 xz。在文件使用tar打包以后,可以使用压缩工具进行压缩。这些工具只有压缩功能,没有打包功能。

注意:gzip、 bzip2、 xz这些工具只能对文件进行压缩,且压缩后源文件消失(其中 xz 命令可以加上-k 参数保留源文件)

  • gzip命令: 压缩:gzip [文件] 、解压: gzip -d [文件]

  • 1-9-文件的归档和压缩_第5张图片
    gzip压缩包
  • bzip2命令: 压缩: bzip2 [文件] 、解压:bzip2 [文件]

  • 1-9-文件的归档和压缩_第6张图片
    bzip2压缩
  • xz命令: 压缩: xz [文件] 、 解压:xz -d [文件] 或者 unxz -d [文件]

  • 1-9-文件的归档和压缩_第7张图片
    xz压缩

五、解压

  • 解压一个 普通包(没有经过压缩的)tar -xvf grub.tar (把grub.tar这个文件解压开)。

  • 解压到 指定目录tar -xvf grub.tar -C /tmp(-C参数,解压到了/tmp/这个目录下)。

  • 解压一个经 gzip工具压缩 的文件:tar -xzvf test.tar.gz

  • 解压一个经过 bzip2工具压缩 的文件:tar -xjvf test.tar.bz2

  • 解压一个经过 zip工具压缩 的文件:unzip test.zip (-d参数解压以后的目录:unzip test.zip -d /tmp/)。

七、确定文件类型

使用 file 命令确定文件类型(常见返回结果):

返回结果 说明
empty 空文件
directory 目录文件
English text 英文正式文件
assembler program text 汇编语言程序的正文文件
ascii text ASCII编码的文本文件
command text 命令语言编写的命令正文程序
c program C语言正文程序
relocation text 用于连接的目标文件
executable 可执行的目标代码文件
data 数据文件

八、查看文件大小

  • 查看具体某个文件的大小:du -sh test.tar

  • ll -h test.tar

  • 列出当前文件夹下使用文件,并显示大小:du -sh * :

  • 1-9-文件的归档和压缩_第8张图片
    查看文件大小

九、参数列表:

ZIP参数列表:

zip Linux上适用的参数:
-1 : 最快压缩,压缩率最差。
-9 : 最大压缩,压缩率最佳。
-b : 暂存文件的路径。这个参数一般在要产生的 zip 文件存在,而硬盘现有空间不足时。
-c : 替新增或更新的文件增加一行注解。
-d : 从 zip 文件移出一个文件。
-D : 不要在 zip 文件中储存文件的目录信息。
-f : 以新文件取代现有文件。
-F : 修复已经损毁的压缩文件。
-g : 将文件压缩附加到 zip 文件中。
-h : 显示辅助说明。
-i : 指定要含入的某些特定文件。
-j : 只储存文件的名称,不含目录。
-k : 强迫使用 MSDOS 格式文件名。
-l : 将 CR ( Carriage Return ) LF ( Line Feed ) 转换成 LF,一般是要将 MS-DOS 上的文本文件压缩后拿到 UNIX 下使用时才使用此参数。这只适用于文本文件 ( .txt ),如果用于二进制文件则会造成二进制文件损毁。
-L : 显示 zip 命令的版权。
-m : 将特定文件移入 zip 文件中,并且删除特定文件。
-n : 不压缩特定扩展名的文件。
-o : 将 zip 文件的时间设成最后修正 zip 文件的时间。
-q : 安静模式,不会显示相关讯息和提示。
-r : 包括子目录。
-t : 只处理 mmddyy 日期以后的文件。
-T : 测试 zip 文件是否正常。
-u : 只更新改变过的文件和新文件。
-v : 显示版本资讯或详细讯息。
-x : 不需要压缩的文件。
-y : 将 symbolic link 压缩,而不是压缩所连结到的文件。
-z : 为 zip 文件增加注解。
-# : 设定压缩速度,-0 表示不压缩,-1 表示最快速度的压缩,
-9 :表示最慢速度的压缩 ( 最佳化的压缩 ),预设值为 -6。
-@ : 从标准输入读取文件名称。

你可能感兴趣的:(1-9-文件的归档和压缩)