zoukankan      html  css  js  c++  java
  • xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

    linux & zip & tar

    https://www.cnblogs.com/xgqfrms/p/9714161.html

    1

    linux中的tar命令

    tar(磁带归档)命令是linux系统中被经常用来将文件存入到一个归档文件中的命令。

    其常见的文件扩展包括:.tar.gz 和 .tar.bz2, 分别表示通过了gzip或bzip算法进一步进行了压缩。

    在本教程中我们会管中窥豹一下在linux桌面或服务器版本中使用tar命令来处理一些创建和解压归档文件的日常工作的例子。

    使用tar命令

    tar命令在大部分linux系统默认情况下都是可用的,所以你不用单独安装该软件。

    tar命令具有两个压缩格式,gzip和bzip,该命令的“z”选项用来指定gzip,“j”选项用来指定bzip。同时也可以创建非压缩归档文件。

    1.解压一个tar.gz归档

    一般常见的用法是用来解压归档文件,下面的命令将会把文件从一个tar.gz归档文件中解压出来。

    1. $ tar -xvzf tarfile.tar.gz

    这里对这些参数做一个简单解释-

    x - 解压文件

    v - 冗长模式,在解压每个文件时打印出文件的名称。

    z - 该文件是一个使用 gzip 压缩的文件。

    f - 使用接下来的tar归档来进行操作。

    这些就是一些需要记住的重要选项。

    解压 tar.bz2/bzip 归档文件

    具有bz2扩展名的文件是使用bzip算法进行压缩的,但是tar命令也可以对其进行处理,但是需要通过使用“j”选项来替换“z”选项。

    1. $ tar -xvjf archivefile.tar.bz2

    2.将文件解压到一个指定的目录或路径

    为了将文件解压到一个指定的目录中,使用“-C”选项来指定路径,此处的“C”是大写“C”。

    1. $ tar -xvzf abc.tar.gz -C /opt/folder/

    然后,首先需要确认目标目录是否存在,毕竟tar命令并不会为你创建目录,所以如果目标目录不存在的情况下该命令会失败。

    3. 提取出单个文件

    为了从一个归档文件中提取出单个文件,只需要将文件名按照以下方式将其放置在命令后面。

    1. $ tar -xz -f abc.tar.gz "./new/abc.txt"

    在上述命令中,可以按照以下方式来指定多个文件。

    1. $ tar -xz -f abc.tar.gz "./new/cde.txt" "./new/abc.txt"

    4.使用通配符来解压多个文件

    通配符可以用来解压于给定通配符匹配的一批文件,例如所有以".txt"作为扩展名的文件。

    1. $ tar -xz -f abc.tar.gz --wildcards "*.txt"

    5. 列出并检索tar归档文件中的内容

    如果你仅仅想要列出而不是解压tar归档文件的中的内容,使用“-t”(test)选项, 下面的命令用来打印一个使用gzip压缩过的tar归档文件中的内容。

    1. $ tar -tz -f abc.tar.gz
    2. ./new/
    3. ./new/cde.txt
    4. ./new/subdir/
    5. ./new/subdir/in.txt
    6. ./new/abc.txt
    7. ...

    可以将输出通过管道定向到grep来搜索一个文件,或者定向到less命令来浏览内容列表。 使用"v"冗长选项将会打印出每个文件的额外详细信息。

    对于 tar.bz2/bzip文件,需要使用"j"选项。

    结合上述的命令和grep命令来检索归档文件,如下所示。简单吧!

    1. $ tar -tvz -f abc.tar.gz | grep abc.txt
    2. -rw-rw-r-- enlightened/enlightened 0 2015-01-13 11:40 ./new/abc.txt

    6.创建一个tar/tar.gz归档文件

    现在我们已经学过了如何解压一个tar归档文件,是时候开始创建一个新的tar归档文件了。tar命令可以用来将所选的文件或整个目录放入到一个归档文件中,以下是相应的样例。

    下面的命令使用一个目录来创建一个tar归档文件,它会将该目录中所有的文件和子目录都加入到归档文件中。

    1. $ tar -cvf abc.tar ./new/
    2. ./new/
    3. ./new/cde.txt
    4. ./new/abc.txt

    上述命令不会创建一个压缩的的归档文件,只是一个普通的归档文件,只是将多个文件放入到一个归档文件中并没有真正地压缩每个文件。

    为了使用压缩,可以分别使用“z”或“j”选项进行gzip或bzip压缩算法。

    1. $ tar -cvzf abc.tar.gz ./new/

    文件的扩展名其实并不真正有什么影响。“tar.gz” 和“tgz”是gzip压缩算法压缩文件的常见扩展名。 “tar.bz2”和“tbz”是bzip压缩算法压缩文件的常见扩展名(LCTT 译注:归档是否是压缩的和采用哪种压缩方式并不取决于其扩展名,扩展名只是为了便于辨识。)。

    7. 在添加文件之前进行确认

    一个有用的选项是“w”,该选项使得tar命令在添加每个文件到归档文件之前来让用户进行确认,有时候这会很有用。

    使用该选项时,只有用户输入“y”时的文件才会被加入到归档文件中,如果你不输入任何东西,其默认表示是一个“n”。

    1. # 添加指定文件
    2. $ tar -czw -f abc.tar.gz ./new/*
    3. add ‘./new/abc.txt’?y
    4. add ‘./new/cde.txt’?y
    5. add ‘./new/newfile.txt’?n
    6. add ‘./new/subdir’?y
    7. add ‘./new/subdir/in.txt’?n
    8. #现在列出所有被加入的文件
    9. $ tar -t -f abc.tar.gz
    10. ./new/abc.txt
    11. ./new/cde.txt
    12. ./new/subdir/

    8. 加入文件到存在的归档文件中

    “r”选项可以被用来将文件加入到已存在的归档文件中,而不用创建一个新的归档文件,下面是一个简单的样例:

    1. $ tar -rv -f abc.tar abc.txt

    文件并不能加入到已压缩的归档文件中(gz 或 bzip)。文件只能被加入到普通的归档文件中。

    9. 将文件加入到压缩的归档文件中(tar.gz/tar.bz2)

    之前已经提到了不可能将文件加入到已压缩的归档文件中,然而依然可以通过简单的一些把戏来完成。使用gunzip命令来解压缩归档文件,然后将文件加入到归档文件中后重新进行压缩。

    1. $ gunzip archive.tar.gz
    2. $ tar -rf archive.tar ./path/to/file
    3. $ gzip archive.tar

    对于bzip文件分别使用bzip2和bunzip2。

    10.通过tar来进行备份

    一个真实的场景是在固定的时间间隔内来备份目录,tar命令可以通过cron调度来实现这样的一个备份,以下是一个样例 :

    1. $ tar -cvz -f archive-$(date +%Y%m%d).tar.gz ./new/

    使用cron来运行上述的命令会保持创建类似以下名称的备份文件 :'archive-20150218.tar.gz'。

    当然,需要确保日益增长的归档文件不会导致磁盘空间的溢出。

    11. 在创建归档文件时进行验证

    "W"选项可以用来在创建归档文件之后进行验证,以下是一个简单例子。

    1. $ tar -cvW -f abc.tar ./new/
    2. ./new/
    3. ./new/cde.txt
    4. ./new/subdir/
    5. ./new/subdir/in.txt
    6. ./new/newfile.txt
    7. ./new/abc.txt
    8. Verify ./new/
    9. Verify ./new/cde.txt
    10. Verify ./new/subdir/
    11. Verify ./new/subdir/in.txt
    12. Verify ./new/newfile.txt
    13. Verify ./new/abc.txt

    需要注意的是验证动作不能在压缩过的归档文件上进行,只能在非压缩的tar归档文件上执行。

    这次就先到此为止,可以通过“man tar”命令来查看tar命令的的手册。

    1

    http://www.binarytides.com/linux-tar-command/

    1

    1

    1

    linux下解压命令大全

    .tar 
    解包:tar xvf FileName.tar
    打包:tar cvf FileName.tar DirName
    (注:tar是打包,不是压缩!)
    ———————————————
    .gz
    解压1:gunzip FileName.gz
    解压2:gzip -d FileName.gz
    压缩:gzip FileName

    .tar.gz 和 .tgz
    解压:tar zxvf FileName.tar.gz
    压缩:tar zcvf FileName.tar.gz DirName
    ———————————————
    .bz2
    解压1:bzip2 -d FileName.bz2
    解压2:bunzip2 FileName.bz2
    压缩: bzip2 -z FileName

    .tar.bz2
    解压:tar jxvf FileName.tar.bz2
    压缩:tar jcvf FileName.tar.bz2 DirName
    ———————————————
    .bz
    解压1:bzip2 -d FileName.bz
    解压2:bunzip2 FileName.bz
    压缩:未知

    .tar.bz
    解压:tar jxvf FileName.tar.bz
    压缩:未知
    ———————————————
    .Z
    解压:uncompress FileName.Z
    压缩:compress FileName
    .tar.Z

    解压:tar Zxvf FileName.tar.Z
    压缩:tar Zcvf FileName.tar.Z DirName
    ———————————————
    .zip
    解压:unzip FileName.zip
    压缩:zip FileName.zip DirName
    ———————————————
    .rar
    解压:rar x FileName.rar
    压缩:rar a FileName.rar DirName
    ———————————————
    .lha
    解压:lha -e FileName.lha
    压缩:lha -a FileName.lha FileName
    ———————————————
    .rpm
    解包:rpm2cpio FileName.rpm | cpio -div
    ———————————————
    .deb
    解包:ar p FileName.deb data.tar.gz | tar zxf -
    ———————————————
    .tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea
    解压:sEx x FileName.*
    压缩:sEx a FileName.* FileName

    sEx只是调用相关程序,本身并无压缩、解压功能,请注意!

    gzip 命令 
    减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip 是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。

    语法:gzip [选项] 压缩(解压缩)的文件名该命令的各选项含义如下:

    -c 将输出写到标准输出上,并保留原有文件。-d 将压缩文件解压。-l 对每个压缩文件,显示下列字段:     压缩文件的大小;未压缩文件的大小;压缩比;未压缩文件的名字-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。-t 测试,检查压缩文件是否完整。-v 对每一个压缩和解压的文件,显示文件名和压缩比。-num 用指定的数字 num 调整压缩的速度,-1 或 --fast 表示最快压缩方法(低压缩比),-9 或--best表示最慢压缩方法(高压缩比)。系统缺省值为 6。指令实例:

    gzip *% 把当前目录下的每个文件压缩成 .gz 文件。gzip -dv *% 把当前目录下每个压缩的文件解压,并列出详细的信息。gzip -l *% 详细显示例1中每个压缩的文件的信息,并不解压。gzip usr.tar% 压缩 tar 备份文件 usr.tar,此时压缩文件的扩展名为.tar.gz。

    1

    1

    xxxxxxxxxxxxx

    xxxxxxxxxxxxxxx

    xxxxxxxxxxxxxxxxxxxxx

  • 相关阅读:
    第四章 springboot + swagger
    第三章 springboot + jedisCluster
    第二章 第二个spring-boot程序
    mac下的一些命令
    Redis(二十一):Redis性能问题排查解决手册(转)
    TreeMap升序|降序排列和按照value进行排序
    关于java集合类TreeMap的理解(转)
    Redis(二十):Redis数据过期和淘汰策略详解(转)
    Redis(十九):Redis压力测试工具benchmark
    try、finally代码块有无return时的执行顺序
  • 原文地址:https://www.cnblogs.com/xgqfrms/p/5032596.html
Copyright © 2011-2022 走看看