精华内容
下载资源
问答
  • 查看压缩包里面所包含的文件

    千次阅读 2021-05-11 11:18:35
    4.3.2-glibc-2.7/lib/libgmp.la 查看tar.bz2包里的文件 如果加上v的参数,则还可以看到每个文件的详细信息。 [chenxibing@localhost lpc3250]$ tar -tjvf /usr/src/redhat/SOURCES/tc-nxp-lnx-armvfp-4.3.2.tar.bz2 ...

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/ssp/stdio.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/ssp/ssp.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/ssp/unistd.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/ssp/string.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/mf-runtime.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/stddef.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/varargs.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/stdarg.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/iso646.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/stdfix.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/omp.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/mmintrin.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/arm_neon.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/unwind.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/stdbool.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/include/float.h

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/crtbeginT.o

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/finclude/

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/gcc/arm-vfp-linux-gnu/4.3.2/crtbegin.o

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/libmpfr.a

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/libiberty.a

    opt/nxp/gcc-4.3.2-glibc-2.7/lib/libgmp.la

    查看tar.bz2包里的文件

    如果加上v的参数,则还可以看到每个文件的详细信息。

    [chenxibing@localhost lpc3250]$ tar -tjvf /usr/src/redhat/SOURCES/tc-nxp-lnx-armvfp-4.3.2.tar.bz2

    ......

    展开全文
  • 本需求是自己负责的一个生产系统上,有大量以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

    处理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

    原文链接地址:http://seanlook.com/2015/01/29/shell-batch-replace-files-from-rar-zip/

    展开全文
  • 文件系统操作命令: 1. cat:可以显示文件的内容(经常和more搭配使用),或将多个文件合并成一个文件。 2. chgrp:用来改变文件或目录所属的用户组,命令的参数以空格分开的要改变属组的文件列表,文件名支持通配符,...

    文件系统操作命令: 1. cat:可以显示文件的内容(经常和more搭配使用),或将多个文件合并成一个文件。 2. chgrp:用来改变文件或目录所属的用户组,命令的参数以空格分开的要改变属组的文件列表,文件名支持通配符,如果用户不是该文件的所有者,则不能改变该文件的所属组。 3. chmod:用于改变文件或目录的访问权限,该命令有两种用法:一种是使用图形化的方法,另一种是数字设置法。 4. chown:用来将指定用户或组为特定的所有者。用户可以设置为用户名或用户ID,组可以是组名或组ID。特定的文件是以空格分开的可以改变权限的文件列表,文件名支持通配符。 5. clear:用来清除终端屏幕。 6. cmp:用来比较两个文件的大小。 7. cp:(copy)可以将文件或目录复制到其他目录中,就如同Dos下的copy命令一样,功能非常强大。在使用cp命令时,只需要指定源文件名或目标目录即可。 8. cut:用来移除文件的部分内容。 9. diff:用来找出两个文件的不同之处。 10. du: 用来显示磁盘的剩余空间的大小。 11. file:用来显示文件的类型。 12. find:用来在目录中搜索文件,并执行指定的操作。 13. head:只查看文件的头几行内容,而不必浏览整个文件。 14. ln:可以在文件之间创建链接,实际上是给某个文件指定一个访问它的别名。 15. less:用法与more类似,可以查看超过一屏的文件内容,不同的是less除了可以按空格键向下显示文件外,还可以利用方向键来滚动显示文件,要结束浏览,只要在less的提示符“:”后按Q即可。 16. locate:可用于查找文件,且比find命令的搜索速度快。 17. ls(list):用来显示当前目录中的文件和子目录列表。 18. mkdir(make directory):建立子目录。 19. more:用于显示内容超过一屏的文件,为了避免文件内容显示瞬间就消失,可以使用more命令让文件显示满一屏时暂停,在按下任意键的时候继续显示下一屏的内容。 20. rmkdir(remove directory):用来删除“空”的子目录或无用的目录文件。 21. mv(move):可以将文件以及目录移到其他位置,或更改文件以及目录的名称。 22. pico:可指定文本的编辑方式。 23. pwd(print working directory):可显示用户当前所在的目录。 24. rm:用来删除系统中过时或无用的文件,可以删除目录中的文件或目录本身,对于链接文件,原有文件保持不变。 25. sort:将文本文件自动分类。 26. stat:用于显示文件或文件系统的状态。 27. Strings:显示文件中要打印的字符串。 28. tail:输出文件的结尾。 29. touch:改变文件的时间戳。 30. umask:用于启动bash shell。 31. uniq:移除已分类文件中的重复文本行。 32. vi:启动vi文本编辑器。 33. wc:显示文件中字节、词组合文本行的数目。 34. whereis:查找特定目录下的原始程序,二进制程序或用户手册等文件的位置。 35. man:如果用户对某个命令想了解更详细的话,可使用此命令。 36. dd:复制一个文件。 37. df:查看一个文件系统的磁盘空间使用情况。 38. edquoat:设置用户与用户组的磁盘空间限制,即Windows系统中的配额。 39. fdformat:格式化软盘。 40. fdisk:执行Linux下的磁盘分区。 41. mkfs:建立一个Linux文件系统。 42. mkswap:创建一个Linux交换分区。 43. mount:挂载一个文件系统。 44. quota:限制和显示用户可用的磁盘空间。 45. swapon,swapoff:启用或取消设备和文件的交换页。 46. quotaon,quotaoff:启用或取消quota限制。 47. umount:取消文件系统的装备。

    取消

    评论

    展开全文
  • python zipfile 处理压缩文件并读取包里面的所有内容import zipfileclass MZipFile(object):'''python zipfile 模块处理压缩文件并读取包里面的每个文件内容(行)'''def __init__(self, zip_path):''':param zip_path...

    python zipfile 处理压缩文件并读取包里面的所有内容

    import zipfile

    class MZipFile(object):

    '''

    python zipfile 模块处理压缩文件并读取包里面的每个文件内容(行)

    '''

    def __init__(self, zip_path):

    '''

    :param zip_path: zip文件路径

    '''

    self.zip = zipfile.ZipFile(zip_path, 'r') # 创建一个zipfile

    def get_filecount(self):

    '''

    :return: 返回压缩包里面的文件个数

    '''

    return len(self.zip.namelist())

    def get_one_file(self):

    '''

    :return: 创建一个generator ,每次返回一个文件的内容

    '''

    for name in self.zip.namelist():

    yield self.read_lines(name) # 生成器

    def read_lines(self, name):

    '''

    :param name: 文件名

    :return: 整个文件所有行(列表:每一行作为一个元素)

    '''

    return [line.decode() for line in self.zip.open(name).readlines()]

    def get_filenames(self):

    '''

    :return: 返回自拍zip文件里面的所有文件名(列表:每个文件名作为一个元素)

    '''

    return self.zip.namelist()

    def extract_to(self, path):

    '''

    解压zip 文件

    :param path: 解压路径

    '''

    self.zip.extractall(path)

    return path

    '''

    Examples

    '''

    if __name__ == "__main__":

    zip = MZipFile(zip_path="123.zip")

    print("文件个数:", zip.get_filecount())

    print("文件名列表:", zip.zip.namelist())

    print("各个文件内容:", str(list(zip.get_one_file())))

    print("解压的路径:", zip.extract_to("./test"))

    运行结果:

    run-result.png

    展开全文
  • 读取ZIP压缩包中的文件信息,通常思路需要先解压,然后再访问文件信息,其实大可不必这么麻烦,无需解压ZIP压缩包就可以提取相关信息。
  • 来源:blog.csdn.net/Peacock__/article/details/92840156最近在做的功能模块有遇到下载ZIP文件里的文件内容,一开始的想法是先通过代码执行解压,...
  • 本需求是自己负责的一个生产系统上,有大量以zip和rar结尾的压缩文件散落在文件系统的各个文件夹,先在需要把压缩包里包含某一个特定文件(如tftpd32.exe或Tftpd32.exe,版本较旧),全都替换成比较新的tftpd32.exe...
  • 从云服务器上下载文件,以压缩包方式下载以下载多个文件为例,需要导入zip4j的jar包,版本不要太高public void downloadZip(List list, HttpServletRequest request, HttpServletResponse response) {String ...
  • 读取多层zip压缩包中的文件 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑...
  • rar格式的文件是一种常见的压缩包文件,可以有效的把大文件压缩成小文件,压缩率非常的高,那么很多朋友想要了解如何打开rar文件,下面小编教大家rar文件正确的打开方式。电脑小白用户第一次收到朋友发来了rar文件,...
  • 今天跟小编一起下打开rar格式文件的详细操作步骤吧。rar是什么文件格式呢?rar是目前比较流行的压缩文件的格式,相对于zip格式的压缩文件更具安全性,所以受到很多用户的青睐,那么很多小伙伴还不知道如何打开rar...
  • java读取zip (含压缩包内的文件)

    千次阅读 2021-02-12 14:20:23
    java中使用ZipFile、ZipInputStream快速读取或解压zip压缩包中的目录和文件。完整示例:packagecom.weizhixi;importorg.apache.commons.io.IOUtils;importjava.io.File;importjava.io.FileInputStream;importjava...
  • 不解压的情况下查看压缩包里面的内容 参考来源:查看压缩包内容tar -tf - 周人假的 - 博客园 1. zipinfo 执行zipinfo指令可得知zip压缩文件的详细信息。 2. zcat 读取*.gz文件内容。 3. bzcat 读取*.bz2...
  • 取出数据库表中的内容写入到文件,并将所有文件写入到压缩包最终导出到指定的某目录下//导出的压缩包格式 xxxx_dateDate currentTime = new Date();//格式化日期格式将yyyy-MM-dd HH:mm:ss 格式转换成xxxxxxxxx格式...
  • 在使用iview组件upload上传压缩包文件时,希望上传前对文件内容进行md5加密,用到了jszip来获取文件内容 npm i jszip -S #下载插件 import JSZip from 'jszip' #前端引入 handleBeforeUpload(file) { const ...
  • 当我们想要更新压缩包(zip, ear应该还包括很多)里的文件(包括文件夹)时,可以通过调用7z这个工具去完成。 import部分: import java.io.BufferedReader; import java.io.IOException; import java.io....
  • 昨天事情比较紧急,就直接打开压缩包,对里面的ppt进行了更改,点了保存准备发给别人时却发现没有更改后的内容,而且怎么找都没有,快急死! 劝告大家压缩包一定要解压之后,再在文件夹中进行修改,如果你身上发生了...
  • #coding=utf-8 ...rf = rarfile.RarFile(path) #待解压文件 rf.extractall(path2) #解压指定文件路径 from zipfile import ZipFile import pandas as pd z = ZipFile('E:/archive.zip') f = z.open('T.
  • 关于java下载文件的时候, 多是把很多文件压缩成压缩包之后在下载, 之前在网上查了一些资料, 将文件压缩成压缩包, 最近又使用到这个, 所以记录一下, 方便后续可能再次使用到。 代码片. import java.io.*; import java...
  • 这里有几个效果比较强力的工具包: OpenXLSX OpenXLSX is a C++ library for reading, ... 然后读取zip文件,要使用libzip里的工具,就是zip_fopen,zip_fread这种函数 感觉官网的文档写的相当不清楚,信息比较少
  • 文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下有个需求,从某个接口下载的一个zip压缩包,往里面添加一个说明文件。搜索了一下,没有找到往zip直接添加文件的...
  • 有个需求,从某个接口下载的一个zip压缩包,往里面添加一个说明文件。搜索了一下,没有找到往zip直接添加文件的方法,最终解决方法是先解压、再压缩。具体过程如下:1、一个zip文件的压缩和解压工具类压缩和解压工具...
  • 判断一个压缩包中的目录层次,如果有多次文件夹就警告错误。这里用到了三个方法,即:读取Zip目录结构、删除原有或指定的文件夹(目录)、判断指定目录是不是有子目录类。主要用到的是require_once "File/Archive.php"...
  • jar压缩文件到jar压缩包 背景描述 在工作中,我们可能需要直接将修改的文件压缩到已打包好的jar文件内。如果使用命令则如何操作呢? 操作命令 jar -xvf filename.jar targetfile #解压jar文件到对应的目录中,如果...
  • 如果您从互联网上下载了许多程序和文件,可能会遇到很多压缩文件,而压缩包是压缩文件或压缩文件夹的载体,将压缩包进行解压操作后,能够得到对应压缩文件的原始文件,但是有时解压后没有得到文件就会非常令人困惑了...
  • } } //解压一个压缩包 /** * 解压zip文件到指定目录 * $filepath: 文件路径 * $extractTo: 解压路径 */ public function dr_unZip($filepath,$extractTo) { $zip = new ZipArchive; $res = $zip->open($filepath);...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 92,416
精华内容 36,966
关键字:

压缩包怎么看里面文件