精华内容
下载资源
问答
  • Linuxzip格式的压缩与解压 一、安装 yum install -y unzip 二、使用 (一)、压缩 常见用法有 zip -q -r 1.zip 1.txt 将当前目录的1.txt压缩为1.zip。选项-q表示忽略执行过程,-r表示递归处理,将指定目录的...

    Linux中zip格式的压缩与解压

    一、安装

    yum install -y unzip
    

    二、使用

    (一)、压缩

    常见用法有

    zip -q -r 1.zip 1.txt
    

    将当前目录下的1.txt压缩为1.zip。选项-q表示忽略执行过程,-r表示递归处理,将指定目录下的所有文件和子目录一并处理


    zip -q -r 1.zip ../1.txt
    

    将上级目录中的1.txt压缩为1.zip

    (二)、解压

    假设当前目录有一个压缩包为1.zip

    常见的用法有


    unzip 1.zip
    

    直接解压到当前目录下


    unzip 1.zip -d folder
    

    通过-d指定解压路径,即解压到当前目录下folder这个文件夹下,如果这个文件夹不存在,可以自动创建

    (三)、查看压缩文件

    zip -sf 1.zip
    

    列出压缩文件1.zip中的内容

    展开全文
  • 本文关键词:linux合并zip文件、linux下zip分卷压缩及linux下zip分卷解压linux下zip分卷解压linux下zip分卷压缩。先压缩原始文件[root@laofuxi.com tmp]# zip -r mariadb.zip /root/src/mariadb-10.2.11-linux-...

    9ddc589a9bae9dd81334056da3504a2c.png

    本文关键词:linux合并zip文件、linux下zip分卷压缩及linux下zip分卷解压、linux下zip分卷解压、linux下zip分卷压缩。

    先压缩原始文件

    [root@laofuxi.com tmp]# zip -r mariadb.zip /root/src/mariadb-10.2.11-linux-x86_64.tar.gz

    adding: root/src/mariadb-10.2.11-linux-x86_64.tar.gz (deflated 2%)

    要看文件列表

    [root@laofuxi.com tmp]# ls -l

    total 439952

    -rw-r--r-- 1 root root 450510649 Sep 7 15:53 mariadb.zip

    分卷为100M一个文件

    [root@laofuxi.com tmp]# zip -s 100M mariadb.zip --out mariadb_test

    copying: root/src/mariadb-10.2.11-linux-x86_64.tar.gz

    要看文件列表

    [root@laofuxi.com tmp]# ls -l

    total 879904

    -rw-r--r-- 1 root root 104857600 Sep 7 15:54 mariadb_test.z01

    -rw-r--r-- 1 root root 104857600 Sep 7 15:54 mariadb_test.z02

    -rw-r--r-- 1 root root 104857600 Sep 7 15:54 mariadb_test.z03

    -rw-r--r-- 1 root root 104857600 Sep 7 15:54 mariadb_test.z04

    -rw-r--r-- 1 root root 31080253 Sep 7 15:54 mariadb_test.zip

    -rw-r--r-- 1 root root 450510649 Sep 7 15:53 mariadb.zip

    合并所有分卷

    [root@laofuxi.com tmp]# cat mariadb_test.z* > all.zip

    要看文件列表

    [root@laofuxi.com tmp]# ls -l

    total 1319856

    -rw-r--r-- 1 root root 450510653 Sep 7 15:54 all.zip

    -rw-r--r-- 1 root root 104857600 Sep 7 15:54 mariadb_test.z01

    -rw-r--r-- 1 root root 104857600 Sep 7 15:54 mariadb_test.z02

    -rw-r--r-- 1 root root 104857600 Sep 7 15:54 mariadb_test.z03

    -rw-r--r-- 1 root root 104857600 Sep 7 15:54 mariadb_test.z04

    -rw-r--r-- 1 root root 31080253 Sep 7 15:54 mariadb_test.zip

    -rw-r--r-- 1 root root 450510649 Sep 7 15:53 mariadb.zip

    解压合并后的zip文件

    [root@laofuxi.com tmp]# unzip all.zip

    Archive: all.zip

    warning [all.zip]: zipfile claims to be last disk of a multi-part archive;

    attempting to process anyway, assuming all parts have been concatenated

    together in order. Expect "errors" and warnings...true multi-part support

    doesn't exist yet (coming soon).

    warning [all.zip]: 419430400 extra bytes at beginning or within zipfile

    (attempting to process anyway)

    file #1: bad zipfile offset (local header sig): 419430404

    (attempting to re-compensate)

    inflating: root/src/mariadb-10.2.11-linux-x86_64.tar.gz

    要看文件列表

    [root@laofuxi.com tmp]# ls -l

    total 1319856

    -rw-r--r-- 1 root root 450510653 Sep 7 15:54 all.zip

    -rw-r--r-- 1 root root 104857600 Sep 7 15:54 mariadb_test.z01

    -rw-r--r-- 1 root root 104857600 Sep 7 15:54 mariadb_test.z02

    -rw-r--r-- 1 root root 104857600 Sep 7 15:54 mariadb_test.z03

    -rw-r--r-- 1 root root 104857600 Sep 7 15:54 mariadb_test.z04

    -rw-r--r-- 1 root root 31080253 Sep 7 15:54 mariadb_test.zip

    -rw-r--r-- 1 root root 450510649 Sep 7 15:53 mariadb.zip

    drwxr-xr-x 3 root root 17 Sep 7 15:55 root

    查看解压后的文件的md5值

    [root@laofuxi.com tmp]# md5sum root/src/mariadb-10.2.11-linux-x86_64.tar.gz

    463992783249787d4d00f26e3f51306b root/src/mariadb-10.2.11-linux-x86_64.tar.gz

    查看原始文件md5值

    [root@laofuxi.com tmp]# md5sum /root/src/mariadb-10.2.11-linux-x86_64.tar.gz

    463992783249787d4d00f26e3f51306b /root/src/mariadb-10.2.11-linux-x86_64.tar.gz

    通过对比md5值,发现md5值是一样的,说明压缩及解压是正常的。

    最后编辑:2018-09-11作者:劳福喜

    c37a23e83f24f7a638008424565633b5.png

    这个作者貌似有点懒,什么都没有留下。

    展开全文
  • 本需求是自己负责的一个生产系统上,有大量以zip和rar结尾的压缩文件散落在文件系统的各个文件夹,先在需要把压缩包里包含某一个特定文件(如tftpd32.exe或Tftpd32.exe,版本较旧),全都替换成比较新的tftpd32.exe...

    本需求是自己负责的一个生产系统上,有大量以zip和rar结尾的压缩文件散落在文件系统的各个文件夹,先在需要把压缩包里包含某一个特定文件(如tftpd32.exe或Tftpd32.exe,版本较旧),全都替换成比较新的tftpd32.exe版本。压缩文件总数约5000个,需要替换的数量约1500个。

    因为是生产环境,不敢轻易乱动,所以脚本考虑的因素就非常多,不允许中间执行过程出现异常,所以找到文件后实际执行替换操作之前做好备份,并且将操作过程记录日志。

    以下几点需要考虑:

    分别处理zip和rar文件,为减低脚本的复杂程度,分作两个shell脚本。

    rar在Linux下默认是没有安装解压缩工具,下载rarlinux-x64-5.2.0.tar.gz

    zip包中文件含有中文文件名,unzip测试解压缩或列出内容时出现文件名乱码,原因是zip在压缩时不记录当时的编码格式。这个问题非常棘手,乱码打进压缩包是绝对不允许的,网上有几种解压办法有几种办法都不能很好的应对我的场景:并不需要实际解压zip文件,而只需使用 l ——列出文件列表、获取目录及文件名,d ——从压缩包中直接删除某个文件,a ——向压缩包添加一个文件。实际解压到文件系统上是不是乱码我们并不关心。

    最后的解决办法是使用p7zip工具,配合LANG变量解决。

    向压缩包里添加新文件时,要保持里面的目录结构,则必须在文件系统上存在同样的 相对目录/文件 。所以每次都要在脚本执行目录下创建临时目录tmp_dir,还要及时删除。但如果文件在压缩包的根目录下,这个临时目录就是当前脚本执行目录。

    有可能会存在一个压缩包中多个文件夹中包含不止一个tftpd32.exe文件。

    每个文件都有一个CRC值,处理文件名大小写不同但实质是同一个文件时有效。

    以下脚本使用说明:

    变量说明

    filelist 变量设定你所需要检查的压缩文件列表(绝对路径),可以通过find /your/dir/ -name *.rar | sort | uniq > testfile。与脚本在相同目录下

    existlist 变量是从filelist文件中得到的包含特定文件的列表,脚本执行完后可以查看

    errorlist 变量是从filelist文件列表中得到的不包含特定文件的列表,当然也有可能这个压缩文件本身不完整

    filebak 变量指定要替换的那个压缩文件备份的目录

    oldfile 指定要替换的那个文件名

    newfile 指定新文件的文件名,注意这个文件一定要在脚本当前目录下

    binrar,bin7z 指定解压缩命令目录,因为7z和rar都不是CentOS自带的

    fl 是filelist文件列表里的每一条记录

    exist 压缩文件fl的内容列表里包含tftpd32.exe的记录,可能有多行

    dirfiles 处理exist的结果,形如压缩包里的目录结构 your/dir/tftpd32.exe,可能有多行

    df 是dirfiles中的单行记录,它的前面目录部分便是tmp_dir

    是否有必要root用户执行看个人情况,执行后部分文件的属主可能会变,可用chown user1.user1 -R /your/dir/恢复

    有部分zip文件无法使用7z,但文件本身正常,从日志可以看到error信息

    tftpd32.exe区分大小写,如果要查找替换Tftpd32.exe请修改后在执行(确保grep没有-i选项)

    可以处理的情况

    压缩文件中无tftpd32.exe

    要替换的tftpd32.exe文件在压缩文件根目录下

    要替换的tftpd32.exe在嵌套子目录中

    压缩文件中存在多个tftpd32.exe

    压缩文件本身存在问题

    该脚本有一定的危险性(虽然已备份),在正式环境中运行之前一定要多做测试。并且运行一次之后,谨慎运行第二次,因为可能会导致备份被覆盖(可换备份目录)

    假如出现异常,要从备份文件恢复所有修改的文件,可以根据$existlist和filebak下的目录列表拼凑cp语句

    建议执行方法./rar_new.sh | tee your.log,事后可从your.log中查看日志

    处理rar的脚本rar_new.sh:

    #!/bin/bash

    filelist="testfile"

    # filelist="crm_rar.txt"

    existlist="${filelist}.exist"

    errorlist="${filelist}.not"

    filebak="/crmbak/rarbak"

    oldfile=tftpd32.exe

    newfile=tftpd32.exe

    binrar="/usr/bin/rar"

    IFS=$'\n'

    echo "files list bellow have ${oldfile}:" > $existlist

    echo "files list bellow do not have ${oldfile} or may have error:" > $errorlist

    for fl in `cat $filelist`

    do

    # ${oldfile} exist or not, file error or not

    exist=`$binrar l $fl |grep ${oldfile}`

    if [ $? -ne 0 ];then

    echo "$fl" >> $errorlist

    continue

    else

    # get extracting dir and filename, could be more than one file

    dirfiles=`echo "$exist" | awk '{for (i=5;i<=NF;i++) printf $i" " ; print ""}'`

    fi

    # echo "$exist"

    if [ "$dirfiles" != "" ];then

    echo "$fl" | tee -a $existlist

    # backup original file

    /bin/cp -af "$fl" "$filebak/"

    echo "--- $fl is backed up in $filebak"

    echo " $dirfiles"

    for df in `echo "$dirfiles"`

    do

    # create temp directory to put new ${newfile} for compress

    tmp_dir=$( echo "$df" | awk -F '/' '{for(i=1;i

    if [ ${#tmp_dir} -ne 0 ];then

    mkdir -p "$tmp_dir" && cp -af ${newfile} "$tmp_dir"

    fi

    # start delete old file and add new one

    $binrar d "$fl" "$tmp_dir"${oldfile} && $binrar a "$fl" "$tmp_dir"${newfile}

    if [ $? -ne 0 ];then

    echo "--- rar file $fl may have error, you SHOULD check it"

    fi

    if [ ${#tmp_dir} -ne 0 ];then

    rm -f "$tmp_dir"${newfile} && rmdir -p "$tmp_dir"

    if [ $? -ne 0 ];then

    echo "--- tmp_dir $tmp_dir delete fail"

    fi

    fi

    done

    echo "--- old deleted, new added"

    fi

    done

    处理zip的脚本zip_new.sh:

    #!/bin/bash

    # filelist="test_filelist"

    filelist="crm_zip.txt"

    existlist="${filelist}.exist"

    errorlist="${filelist}.not"

    filebak="/crmbak/zipbak"

    oldfile=Tftpd32.exe

    newfile=tftpd32.exe

    bin7z="/usr/bin/7z"

    export LANG="zh_CN.GB18030"

    IFS=$'\n'

    echo "files list bellow have ${oldfile}:" > $existlist

    echo "files list bellow do not have ${oldfile} or may have error:" > $errorlist

    for fl in `cat $filelist`

    do

    # ${oldfile} exist or not, file error or not

    exist=`$bin7z l $fl |grep ${oldfile}`

    if [ $? -ne 0 ];then

    echo "$fl" >> $errorlist

    continue

    else

    # get extracting dir and filename, could be more than one file

    dirfiles=`echo "$exist" | awk '{for (i=6;i<=NF;i++) printf $i" " ; print ""}'`

    fi

    # echo ===== "$dirfiles"

    if [ "$dirfiles" != "" ];then

    echo "$fl" | tee -a $existlist

    # backup original file

    /bin/cp -af "$fl" "$filebak/"

    echo "--- $fl is backed up in $filebak"

    echo " $dirfiles"

    for df in `echo "$dirfiles"`

    do

    # create temp directory to put new ${newfile} for compress

    tmp_dir=$( echo "$df" | awk -F '/' '{for(i=1;i

    if [ ${#tmp_dir} -ne 0 ];then

    mkdir -p "$tmp_dir" && cp -af ${newfile} "$tmp_dir"

    fi

    # start delete old file and add new one

    $bin7z d "$fl" "$tmp_dir"${oldfile} && $bin7z a "$fl" "$tmp_dir"${newfile}

    if [ $? -ne 0 ];then

    echo "--- zip file $fl may have error, you SHOULD check it"

    fi

    if [ ${#tmp_dir} -ne 0 ];then

    rm -f "$tmp_dir"${newfile} && rmdir -p "$tmp_dir"

    if [ $? -ne 0 ];then

    echo "--- tmp_dir $tmp_dir delete fail"

    fi

    fi

    done

    echo "--- old deleted, new added"

    fi

    done

    展开全文
  • 原标题:解决linux下zip文件解压乱码问题解决linux下zip文件解压乱码问题 原因由于zip格式并没有指定编码格式,Windows生成的zip文件中的编码是GBK/GB2312等,因此,导致这些zip文件在Linux下解压时出现乱码问题,...

    原标题:解决linux下zip文件解压乱码问题

    解决linux下zip文件解压乱码问题

    f3065f024652fa5799db81a6de97ec83.png

    原因

    由于zip格式并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,因此,导致这些zip文件在Linux下解压时出现乱码问题,因为Linux下的默认编码是UTF8。

    解决方案一

    使用7z解压。

    安装p7zip和convmv

    # fedora

    $ su -c 'yum install p7zip convmv'

    # ubuntu

    $ sudo apt-get install p7zip convmv

    执行一下命令解压缩

    # 使用7z解压缩

    $ 7za x your-zip-file.zip

    # 递归转码

    $ convmv -f GBK -t utf8 --notest -r .

    解决方案二

    在windows上压缩的文件,是以系统默认编码中文来压缩文件。由于zip文件中没有声明其编码,所以linux上的unzip一般以默认编码解压,中文文件名会出现乱码。

    虽然2005年就有人把这报告为bug, 但是info-zip的官方网站没有把自动识别编码列入计划,可能他们不认为这是个问题。Sun对java中存在N年的zip编码问题,采用了同样的处理方式。

    有2种方式解决问题:

    1. 通过unzip行命令解压,指定字符集

    unzip -O CP936 xxx.zip (用GBK, GB18030也可以)

    有趣的是unzip的manual中并无这个选项的说明, unzip --help对这个参数有一行简单的说明。

    2. 在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件

    /etc/environment中加入2行

    UNZIP="-O CP936"

    ZIPINFO="-O CP936"

    这样Gnome桌面的归档文件管理器(file-roller)可以正常使用unzip解压中文,但是file-roller本身并不能设置编码传递给unzip。返回搜狐,查看更多

    责任编辑:

    展开全文
  • 方法3,在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件 /etc/environment中加入2行 UNZIP=”-O CP936″ ZIPINFO=”-O CP936″ 方法4,采用java的jar命令解压zip包 JAR 解压 jar xvf file.name ...
  • Linux本身不支持unrar和rar命令,需要我们安装RAR for Linux下载rar 软件[root@localhost ~]# wget https://www.rarlab.com/rar/rarlinux-x64-5.9.0.tar.gz2.安装[root@iZf8ze76gcpdjr5dtx1l53Z ~]# tar xf rarlinux...
  • Linux 下载安装 rar 并解压rar压缩包(Linux下如何解压.zip和.raLinux 下载安装 rar 并解压rar压缩包(Linux下如何解压.zip和.rar文件)Linux下如何解压.zip和.rar文件,对于Window的常见压缩文件.zip和.rar,Linux也...
  • 第一步:在Windows系统,将整个文件夹压缩成zip后缀的压缩包方法一:在文件夹xtemp上,右键,选中“发送到”--“压缩(zipped)文件夹”即可完成zip格式文件夹的压缩方法二:在空白处,右键,选择“新建”--“WinRAR...
  • linux zip 命令详解功能说明:压缩文件.语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b ][-ll][-n ][-t ][-][压缩文件][文件...][-i ][-x ]补充说明:zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip...
  • 本需求是自己负责的一个生产系统上,有大量以zip和rar结尾的压缩文件散落在文件系统的各个文件夹,先在需要把压缩包里包含某一个特定文件(如tftpd32.exe或Tftpd32.exe,版本较旧),全都替换成比较新的tftpd32.exe...
  • 今天在Linux解压zip文件报错,报错信息如下:Archive: abc.zipEnd-of-central-directory signature not found. Either this file is nota zipfile, or it constitutes one disk of a multi-part archive. In the...
  • linux下压缩包格式繁多,并且在命令行没有Windows使用那么方便,有时候解压文件的时候会突然忘掉命令,这里fcbu.com为大家收集了基本所有文件格式的解压方法和打包命令.需要的可以参考一下:.tar解包:tar xvf ...
  • linux下解压有密码的rar压缩包的方法

    千次阅读 2021-05-14 02:24:32
    可以用以下方法解压:系统:Kubuntu 7.10 Gusty事先安装unrar:yuanjin@Liang:~/Desktop$sudo apt-get install unrar装好后,切换konsole到...例如:我要解压Desktop的一个名为lanlan.rar的带密码压缩包。执行命...
  • 原因由于zip格式并没有指定编码格式,Windows生成的zip文件中的编码是GBK/GB2312等,因此,导致这些zip文件在Linux下解压时出现乱码问题,因为Linux下的默认编码是UTF8。解决方案一使用7z解压。安装p7zip和convmv#...
  • linux ZIP命令zip -r myfile.zip ./*将当前目录的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录所有文件.2.unzipunzip -o -d /home/sunny myfile.zip把myfile.zip文件解压到 /home/sunny/-o:...
  • Linux自带的unzip命令可以解压windowszip格式的压缩文件。如何unzip没安装,可以yum 安装: yum -y install unzipunzip命令语法:unzip [选项] 压缩文件名.zip各选项的含义分别为:-x 文件列表 解压缩文件,...
  • tar -zxvf 压缩包名.zip
  • 云服务器:解决linux下zip文件解压乱码问题原因由于zip格式并没有指定编码格式,Windows生成的zip文件中的编码是GBK/GB2312等,因此,导致这些zip文件在Linux下解压时出现乱码问题,因为Linux下的默认编码是UTF8。...
  • linux怎么解压zip文件

    千次阅读 2021-05-15 13:22:04
    ZIP文件是包含一个或多个压缩文件或目录的数据容器在此文中将向您展示如何使用unzip命令通过命令行解压缩Linux系统中的文件Unzip命令,可帮助您列出,测试和提取压缩的ZIP归档安装unzip默认情况,大多数Linux发行...
  • linux下有时因为文件过大,传输过程中需要将源文件压缩为多个zip文件,以下是具体方法 压缩 zip -r -s 1g split.zip fold/ -s 1g代表分卷大小 split.zip压缩包名 fold/为待压缩的目录 解压 zip -s 0 split.zip --...
  • linux zip文件解压命令有:1、压缩mydata目录【zip -r mydata.zip mydata】;2、解压mydata【unzip mydata.zip -d mydatabak】;3、解压到home目录【unzip ..】。linux zip文件解压命令有:1、把/home目录下面的...
  • looking 用户在自己家目录打了一个 tar.gz 的压缩包: [looking@master test]$ ll total 139540 -rw-rw-r--. 1 looking looking 142885189 Oct 30 12:31 x2openEuler.tar.gz 并拷贝压缩包到了 /tmp 临时目录...
  • Linux下的压缩解压缩命令详解及实例实例:压缩服务器上当前目录的内容为xxx.zip文件zip -r xxx.zip ./*解压zip文件到当前目录unzip filename.zip============================另:有些服务器没有安装zip包执行不了...
  • 2020-04-23 11:02:45来源:亿速云阅读:162作者:小新今天小编给大家分享的是linux解压zip文件命令是什么,相信很多人都不太了解,为了让大家更加了解linux解压zip文件命令,所以给大家总结了以下内容,一起往看吧...
  • Linux 下解压rar压缩包

    2021-05-17 10:37:57
    Linux本身不支持unrar和rar命令,需要我们安装RAR for Linux下载rar 软件[root@localhost ~]# wget https://www.rarlab.com/rar/rarlinux-x64-5.9.0.tar.gz2.安装[root@iZf8ze76gcpdjr5dtx1l53Z ~]# tar xf rarlinux...
  • linux服务器解压zip文件

    千次阅读 2021-05-19 11:07:22
    现在需要使用linux命令对这个test.zip文件进行解压 步骤 1:首先点击图标直接打开Xshell,这里就直接进入了asset目录所在的文件夹底下,不需要使用cd /opt/java/tomcat_8091/webapps/ROOT/asset命令进入了。 ...
  • 最近经常在linux上进行打包压缩解压,从网上收集整理并结合自己的常用的,跟大家分享一下,废话不多说,进入正题。1、zip 压缩如果是直接压缩几个文件,那就可以直接使用命令 zip newfilename.zip filename1 ...
  • 这是网上提供的方法: .tar.gz 解压:tar zxvf FileName.tar.gz 压缩:tar zcvf FileName.tar.gz DirName1 DirName2 大致总结了一下linux下各种格式的压缩包的压缩、解压方法。但是部分方法我没有用到,也就不全...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,960
精华内容 14,784
关键字:

linux下zip压缩包解压

linux 订阅