首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏沈钦华的专栏

    golang封装tar打包解包

    在golang项目中,需要对文件夹进行tar.gz打包然后分发。搜了下github,没有找到现成可用的库,只好自己进行封装。 这里想到了2个实现方案: 1、使用官方的archive/tar库,自行实现压缩打包解包的过程; 2、通过os/exec调用shell命令,直接调用系统的tar命令进行打包; 这里先介绍下方案一的实现, 方案二在另外篇幅说明 方案一:使用archive/tar库封装 这个方案实现起来也不难,大体思路是打包时遍历目录的所有文件,通过tar.Writer写入到tar包,在写入的过程中处理下header的信息 解包则通过tar.Reader读取tar包的信息,根据header.Name创建文件然后将内容拷贝进去。 = nil { return err } return nil }) } 解包 解包的总体逻辑基本和压缩的逻辑反过来即可,即遍历tar包内的header,

    3.3K10发布于 2021-10-15
  • 来自专栏沈钦华的专栏

    golang封装tar打包解包之二

    好久没上来这里写专栏了,发现上一篇有关tar打包解包还留着一个坑。这里补上。本文介绍下通过os/exec调用shell命令,直接调用系统的tar命令进行打包。 方案二、通过调用系统的tar命令基本思路是先拼接tar打包解包的命令,然后调用os/exec包的CommandContext方法执行shell命令。这里要求操作系统中需要有tar命令。 string) error { // e.g: tar -zcf test.tar.gz -C /tmp/ test cmdStr := "tar -zcf " + tarFileName + + filepath.Dir(sourceFullPath) + " " + filepath.Base(sourceFullPath) return tlp.exec(cmdStr)}解压同压缩打包 -zxf /tmp/test.tar.gz -C /tmp/ cmdStr := "tar -zxf " + tarFileName + " -C " + dstDir return tlp.exec

    44320编辑于 2023-11-07
  • 来自专栏zingpLiu

    打包命令tar

    tar是linux下最常用的打包命令,使用tar打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的,也有.gz或.bz2结尾的。 1 常用参数 -c,--create # 新建打包文件,搭配-v查看被打包的文件名 -t,--list  # 列出包的内容(有那些文件名) -x,--extract # 解压 -X, --exclude-from=FILE # 排除指定文件 2 常用组合示例 2.1 打包 参数组合:将a.txt b.txt c.txt d.txt这四个文件打包成abcd.tar.bz2 drwxr-xr-x 3 root root 24 Nov 23 19:32 project drwxr-xr-x 2 root root 135 Dec 1 15:52 test [@tc drwxr-xr-x 3 root root 24 Nov 23 19:32 project drwxr-xr-x 2 root root 135 Dec 1 15:52 test 2.2

    2.3K50发布于 2018-09-05
  • 来自专栏码客

    Android apk解包打包

    解包 apktool d -f ./RetroArch_aarch64.apk 或者 apktool d -f . /RetroArch_aarch64.apk -o RetroArch_aarch64 打包 apktool b RetroArch_aarch64 生成的apk默认放在RetroArch_aarch64 [否]: y 目录中就会生成psvmc.keystore文件 签名打包 jarsigner -verbose -keystore psvmc.keystore -signedjar RetroArch_aarch64

    2.3K30发布于 2019-10-21
  • 来自专栏全栈程序员必看

    tar 打包压缩命令

    tar 命令用于文件的打包或压缩,是最为常用的打包压缩命令,其语法格式如下: tar [选项] 文件名.tar.gz 源文件 tar -cvfz xxx.tar.gz source_file (tar -cvfz 包名.tar.gz 源文件) #以tar.gz方式打包并gz方式压缩 tar -xvfz xxx.tar.gz -C path (tar -xvfz xxx.tar.gz -C 目标路径) #解压缩包 注意:使用tar命令,打包仅仅是打包xxx.tar打包并压缩就是xxxx.tar.gz,打包压缩的文件一定要指定文件格式,这样解包解压才好用对应的参数来解包解压缩 常用参数选项: -c --create :创建新的归档文件,即打包打包的意思就是说把一堆文件打包成一个文件 -v --verbose :可视化,显示详细的tar处理的文件信息的过程 -f -- etc.tar #解包 [root@Centos8 shell_scripy]# tar -czvf etc.tar.gz /etc/ #打包并压缩/etc/目录,压缩包存放在当前目录,名字为etc.tar.gz

    1.6K20编辑于 2022-09-04
  • 来自专栏悟空被FFmpeg玩

    tar打包原理分析

    这个是在一个while循环里面做的,我使用的是一个打包的参数,不带压缩参数: 1837 (gdb) p argv[0]1838 $63 = 0xbffff758 "/home/liuqi/dvntar "1843 (gdb) p argv[3]1844 $66 = 0xbffff782 "example"1845 (gdb) p argv[4]1846 $67 = 0x01847 (gdb) 以上是命令行输入的参数 cscope.out cscope.po.out dvntar example example.tar.gz lib lib.tar.gz Makefile sad sad.tar src tags[ root@1jjk dvntar]# diff example/aaa sad.tar1c1,3< sdajkfhskdjhfksjdhfkjsdfwerw2346543dhjkdsjf---> example sdajkfhskdjhfksjdhfkjsdfwerw2346543dhjkdsjf>\ No newline at end of file[root@1jjk dvntar]# diff example/bbb sad.tar1c1,3

    2.2K20发布于 2019-03-05
  • 来自专栏防止网络攻击

    Linux tar打包命令

    不仅如此,该命令还可以从归档文件中还原所需文件,也就是打包的反过程,称为解打包。 使用 tar 命令归档的包通常称为 tar 包(tar 包文件都是以“.tar”结尾的)。 [root@localhost ~]# tar -cvf test.tar test/ test/ test/test3 test/test2 test/test1 #把目录打包为test.tar文件 test.tar.gz tar命令做解打包操作 当 tar 命令用于对 tar 包做解打包操作时,该命令的基本格式如下: [root@localhost ~]#tar [选项] 压缩包 其实解打包打包相比 /root 0 2016-06-17 17:51 test/test3 -rw-r-r- root/root 0 2016-06-17 17:51 test/test2 -rw-r-r- root/root 一个打包压缩,居然还要先打包成 ".tar" 格式,再压缩成 ".tar.gz" 或 ".tar.bz2" 格式。

    3.3K30编辑于 2023-10-31
  • 来自专栏全栈程序员必看

    tar打包命令(linux)

    1.打包命令: tar -cvf 归档路径 被打包文件路径。 (c--create archive v-verbose f --file ,f指归档路径,故f必须放在其他选项之后,而且-可省略不写) 单独打包命令: tar -cvf 归档路径 被打包路径 (整体文件变大,后缀一般是.tar) gzip压缩命令: tar -zcvf 归档路径 被打包路径. (gun-zip压缩,后缀一般是.tar.gz) bzip2压缩命令: tar -jcvf 归档路径 被打包路径. [root@lbg test]# tar -zcvf test.tar.gz a b c d ---打包并gzip压缩。

    6.8K20编辑于 2022-09-03
  • 来自专栏编程学习基地

    文件打包解包的方法

    例如腾讯QQ里面的资源图片,哪怕你用Everything去搜索也搜索不到,那是因为腾讯QQ对这些资源图片进行了打包,当软件运行的时候解包获取资源图片。 举个栗子: ? 这是我用RDB打包解包工具对QQ某一目录下的.rdb文件进行解包得到的表情包资源,还有头像资源等等。。 这种打包不是压缩包那种经过算法压缩,而是将一堆资源写入到一个文件里面,解包的时候按照打包的方式读取,达到防止用户出于恶趣味更改图片资源。 这期介绍下C++利用文件操作进行文件的打包解包.. 正文 打包解包 ---- 要想将文件打包生成文件,我们需要一张索引表,索引表里面包括关于文件的信息,例如文件名,文件大小.. packFile() { FileInfo fileList[4] = { { 0,0,0,"1.jpg" }, { 0,0,0,"2.jpg" }, { 0,0,0,"3.

    2.3K30发布于 2020-05-12
  • 来自专栏丑胖侠

    linux下不解包查看tar包文件内容

    为减少日志文件占用的空间,很多情况下我们会将日志文件以天或周为周期打包tar.gz 包保存。虽然这样做有利空间充分利用,但当我们想查看压缩包内的内容时确很不方便。 直接查看tar.gz压缩包里的内容可以使用: zcat xxx.tar.gz 但是想要在其后面直接加管道grep处理呢? zcat vsftpd.tar.gz|grep --binary-files=text 'footbar.js'或 zgrep --binary-files=text 'footbar.js' vsftpd.tar.gz 因为我压缩是用的tar czvf参数进行的打包。其实现上经过tar与gzip两层压缩。导致其直接不能管道。如果不解包想直接查看压缩包里包含了那些文件呢? 可以用下面的命令: [root@back tmp]# tar tvf vsftpd.tar.gz -rw------- root/root 441453365 2013-06-03 16:19:56 vsftpd.log

    5.6K60编辑于 2022-05-06
  • 来自专栏linux系统运维

    zip压缩以及tar打包

    如果用unzip解压不指定路径那么它默认的是当前目录(确定当前目录是否有重复文件)(解压zip的压缩文件不能修改文件名) unzip -l (需要查看的文件名字)     查看一个zip的压缩文件 tar 打包工具: 打包完以后如果再次对同一个文件进行打包那么文件会被直接替代不会有任何提示。 解压tar打包文件也是同样,再次对用一个tar打包文件解压会直接覆盖上次解压的内容并且不会提示。 文件和目录可以一起打包。 过滤掉你不想打包的文件 --exclude (文件名字) 可以写多个条件但是每个条件都要加上--exclude       (*号文件必须用双引号引起来   格式 =“*”) tar -tf (需要查看 tar打包的文件名字)   =    查看tar打包文件 打包并压缩: 扩展: http://ask.apelearn.com/question/5435 

    1.2K100发布于 2018-06-14
  • 来自专栏全栈程序员必看

    linux tar命令打包整个文件夹详解,Linux tar打包命令详解

    不仅如此,该命令还可以从归档文件中还原所需文件,也就是打包的反过程,称为解打包。 使用 tar 命令归档的包通常称为 tar 包(tar 包文件都是以“.tar”结尾的)。 [root@localhost ~]# tar -cvf test.tar test/ test/ test/test3 test/test2 test/test1 #把目录打包为test.tar文件 tar命令做解打包操作 当 tar 命令用于对 tar 包做解打包操作时,该命令的基本格式如下: [root@localhost ~]#tar [选项] 压缩包 当用于解打包时,常用的选项与含义如表 /root 0 2016-06-17 17:51 test/test3 -rw-r-r- root/root 0 2016-06-17 17:51 test/test2 -rw-r-r- root/root 一个打包压缩,居然还要先打包成 “.tar” 格式,再压缩成 “.tar.gz” 或 “.tar.bz2” 格式。

    26.9K10编辑于 2022-09-04
  • 来自专栏源码之家

    tar排除指定目录打包

    假设 test目录下有 1 2 3 4 5 这5个目录 现在要将 3 4 5目录tar打包,1和2目录不要 命令如下: tar -zcvf test.tar.gz –exclude=1 –exclude =2 test 或 tar -zcvf test.tar.gz –exclude=test/1 –exclude=test/2 test 看man tar帮助,–exclude后面跟的好像是正则 注意 : 要打包的test必须在命令最后,不然没有效果. tar -zxvpf /tmp/etc.tar.gz /etc #这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时! /dmtsai tar –exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

    1.9K60发布于 2018-06-04
  • 来自专栏全栈程序员必看

    tar 打包隐藏文件

    前言: 先说一下遇到的场景:前段时间在配合做 DevOps,组内有块代码是 php 的,需要用 tar 命令打包归档上传到 nexus 库,后来发现解压出来的包居然缺失了隐藏文件(配置文件),查了一下资料解决了 1. tar 命令常规用法 -c 创建新的档案文件 -C 指定到目录。注意:该目录必须存在 -f 指定打包的文件名。在f之后要立即接打包文件名!不能再加参数! 或xx. tgz -Z 有compress -j 使用bzip2压缩,一般格式为xxx.tar.bz2 --exclude 在压缩过程中,排除某个文件 --remove-files 在完成打包后,删除原文件夹 一定要注意大小写 归档: tar -cvf 2020-08-03_log.tar *.log 压缩归档: tar -czvf 2020-08-03_log.tar.gz *.log 解压缩: tar * 3.归档某文件夹下的所有文件,不包含这个文件夹 eg, 归档 log 文件夹下的所有文件 常规都是下面这么写 tar -cvf log.tar /var/log/* 但是归档以后再解开,会发现是一个三级目录

    2.9K10编辑于 2022-09-04
  • 来自专栏全栈程序员必看

    linux tar (打包、压缩、解压)命令

    打包程序:tar c: 创建文档 t: 列出存档内容 x:提取存档 f: filename 要操作的文档名 v:详细信息 一:打包 打包:是指把文件整合在一起,不压缩 1.将文件打包tar cf a.tar /etc/ 2.列出文档内容:tar tf a.tar 3.提取文档内容:tar xf a.tar 二:压缩 压缩:把打包好的文件压缩,便于存储 注:压缩一定加上后缀,便于解压,便于观看 Linux 主要有3种压缩方式 gzip: 压缩速度最快,历史最久,应用最广泛; bzip2: 压缩成的存档文件小,可用性不如gzip; xz: 最新的方式,提供最佳的压缩率。 J 用于xz压缩: filename.tar.xz 1.先看看压缩前文件大小:ls -lh 2.gzip压缩:tar zcf a.tar.gz a.tar 3.bzip2 缩:tar jcf a.tar.bz2 a.tar 4.xz压缩:tar Jcf a.tar.xz a.tar 5.压缩率对比:xz > bzip2 > gzip 三:解压 解压:将压缩好的文件解压打开

    9.7K10编辑于 2022-09-03
  • 来自专栏程序猿的大杂烩

    zip压缩工具,tar打包打包并压缩

    笔记内容: l 6.5 zip压缩工具 l 6.6 tar打包 l 6.7 打包并压缩 笔记日期:2017.8.8 6.5 zip压缩工具 ? zip支持压缩目录,也可以压缩文件。 Zip压缩文件的命令和gzip、bzip2的命令不太一样,例如我要压缩3.txt文件: ? 使用zip压缩目录: ? 6.6 tar打包 ? 如果使用tar工具将这些散开的文件和目录打包到一起,就能同时进行传输,虽然可能达不到理论上的8秒传输完,但是肯定会比散开来传输要快得多,这就是需要用到打包工具的目的。   tar的用法类似于zip,例如打包一个目录: ? tar解包会覆盖原来的文件: ? 目录加文件一起打包: ? ? 查看tar包里的文件列表: ? 加上--exclude选项可以过滤指定的文件: ?

    2.1K10发布于 2020-09-23
  • 来自专栏difcareer的技术笔记

    Android boot.img的解包修改重打包

    将一些繁琐的东西整理了一下,发到了github:https://github.com/difcareer/BootImgTool/ 什么情况下,需要操作boot.img: 自己编译的linux内核,需要解包 boot.img,替换kernel文件后重打包,这样刷机才会生效。 /build.sh 使用tmp下的boot.img练手,解包: bin/unpack-bootimg.sh tmp/boot.img 此时tmp如下: ll tmp total 34944 -rw-r- 修改default.prop: 在tmp/boot.img-ramdisk/下,找到default.prop进行修改,比如将ro.debuggable=0 改为ro.debuggable=1 重新打包

    11.6K50发布于 2018-08-23
  • 来自专栏Python小屋

    详解Python序列解包3

    本文主要介绍调用函数传递参数时序列解包的用法。在调用函数传递参数时,可以在实参序列前加一个星号*进行序列解包,或在实参字典前加两个星号**进行解包,本文介绍第一种用法,第二种用法后面再单独发文介绍。 #可以接收多个位置参数的函数 >>> def demo(a, b, c): print(a+b+c) >>> seq = [1, 2, 3] #对列表进行解包 >>> demo(*seq) 6 >>> tup = (1, 2, 3) #对元组进行解包 >>> demo(*tup) 6 >>> dic = {1:'a', 2:'b', 3:'c'} #对字典的键进行解包 >>> demo(*dic) 6 #对字典的值进行解包 >>> demo(*dic.values()) abc >>> Set = {1, 2, 3} #对集合进行解包 >>> demo(*Set) 6 # 对range对象进行解包 (3), range(3,6))) (0, 3, 1, 4, 2, 5) # 对生成器对象进行解包 >>> demo(*(i for i in range(3))) 3

    1.7K40发布于 2018-04-16
  • 来自专栏程序员云帆哥

    Linux-压缩解压缩与打包解包

    解压缩:unzip 压缩后的文件 3、bzip2 压缩后的扩展名是.bz2 压缩:bzip2 文件名 解压缩:bunzip2 压缩文件 或 bzip2 -d 压缩文件 二、打包指令 1、将a、b、c 、d这四个文件打包成一个文件:file.tar tar -cvf file.tar a b c d 2、解这种包 tar -xvf file.tar 3打包同时进行压缩 tar -zcvf file.tar.gz a b c d 4、解这种包 tar -zxvf file.tar.gz 5、查看包 tar -tf file.tar

    2.4K30编辑于 2022-05-12
  • 来自专栏浩Coding

    Linux 系统tar、zip压缩打包命令

    tar命令中,tar -T 指定范本文件。-t是查看文件,-c是创建,-z是解压, -v是过程, -f是指定文件名。 打包tar.gz格式压缩包 # tar -zcvf targetFile.tar.gz targetFile 解压tar.gz格式压缩包 # tar zxvf targetFile.tar.gz 打包tar.bz2格式压缩包 # tar -jcvf targetFile.tar.bz2 /targetFile 解压tar.bz2格式的压缩包 # tar jxvf targetFile.tar.bz2 格式的压缩包 # unzip targetFile.zip 排除某个目录:--exclude=file1 要排除一个目录是 --exclude=dir1,而不是 --exclude=dir1/ 也可以在父目录打包 1.txt //这就仅解压出来1.txt 参考文章: Linux tar 命令 linux 系统tar文件压缩打包命令 Linux压缩打包命令——tar、zip、unzip

    9.2K20发布于 2021-11-16
领券