Linux下压缩包生成与解压命令以及进度

不同后缀压缩包的打包与加压命令

  • .tar

    • 解包:tar xvf FileName.tar
    • 打包:tar cvf FileName.tar DirName
  • .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只是调用相关程序,本身并无压缩、解压功能,请注意!

tar 命令详解

  • -c: 建立压缩档案
  • -x:解压
  • -t:查看内容
  • -r:向压缩归档文件末尾追加文件
  • -u:更新原压缩包中的文件

以上五个是独立的命令参数,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.


下面的参数是根据需要在压缩或解压档案时可选的。

  • -z:有gzip属性的 .tar.gz
  • -j:有bz2属性的 .tar.bz2
  • -J :有xz属性的 .tar.xz
  • -Z:有compress属性的 .tar.Z
  • -O:将文件解开到标准输出

实例

  • 查看usrdata.tar.gz包的内容tar tf usrdata.tar.gz
  • 解压出usrdata.tar.gz包的conf目录tar xvf usrdata.tar.gz conf
  • 解压或压缩进度展示
    • 官方文档
    • github中相关脚 https://github.com/callinglove/programming_examples/tree/master/script/shell/tools
    # file to decompress, directory
    function tar_decompress() {local total_size=51200local tar_file=$1local tar_dir=./if [[ $# -eq 2 ]]; thentar_dir=$2fiif [[ "${tar_file}" == *.tar.gz ]]; thentotal_size=$(gzip -l "${tar_file}" | tail -1 | awk '{print $2}')elif [[ "${tar_file}" == *.tar.xz ]]; thentotal_size=$(xz --robot -l "${tar_file}" | tail -1 | awk '{print $5}')filocal blocking_factor=$((total_size/512/100+1))local checkpoint=1tar --blocking-factor=$blocking_factor --checkpoint=1 --checkpoint-action="ttyout=unpack ${tar_file##*/} %u%    \r" -xpf $tar_file -C $tar_direcho "decompress ${tar_file##*/} complete"
    }# tar file name, file list to compress
    function tar_compress() {local tar_file=$1shiftlocal file_to_tar="$@"local total_size=$(du -sb ${file_to_tar} | awk '{sum+=$1} END {print sum}')local blocking_factor=$((total_size/512/100+1))tar -zcpf ${tar_file} ${file_to_tar}  --blocking-factor=${blocking_factor} --checkpoint=1 --checkpoint-action="ttyout=pack ${tar_file##*/} %u%    \r" --totals
    }
    

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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

经典面试题

谷歌面试题:1024! 末尾有多少个0? 末尾0的个数取决于乘法中因子2和5的个数。显然乘法中因子2的个数大于5的个数,所以我们只需统计因子5的个数。 是5的倍数的数有: 1024 / 5 204个;对于25,50这些数据统计一次,但实际的是包含两个…

共享内存:mmap函数实现

内存映射的应用: 以页面为单位,将一个普通文件映射到内存中,通常在需要对文件进行频繁读写时使用,这样用内存读写取代I/O读写,以获得较高的性能;将特殊文件进行匿名内存映射,可以为关联进程提供共享内存空间;为无关联的进程提供共享内存空间,一般也是将…

MSYS2开发环境搭建

MSYS2开发环境搭建 软件安装 下载msys2-x86_64软件包 https://www.msys2.org/,双击安装到某根目录下,比如D:\msys64。 pacman是MSYS2自带的软件管理工具: 可通过修改msys64\etc\pacman.d下的三个文件修改软件源,可供选择的源有…

设置python路径

在python开发应用,我们多数是通过pip、easy_install等工具将需要的python安装到自己机子上就可以应用了,但是我们完成开发给用户使用时,程序运行环境就是一个问题。当然,你可以要求客户按照你的方法安装依赖的库,这种方…

linux动态库查找路径以及依赖关系梳理

编译时与运行时库的路径 linux下,编译时与运行时库的搜索路径是不同的 运行时动态库的路径搜索顺序 LD_PRELOAD环境变量,一般用于hack 编译目标代码时指定的动态库搜索路径(指的是用 -wl,rpath 或-R选项而不是-L),readelf -d命令可以查看编…

eclipse--android开发环境搭建教程

引言 在windows安装Android的开发环境不简单也说不上算复杂,但由于国内无法正常访问google给android开发环境搭建带来不小的麻烦。现将本人搭建过程记录如下,希望会对投身android开发的小伙伴有所帮助。 android开发环境部署过程 安装JDK环境 下载安装…

pip工具使用总结以及常用库PIL、freetype的安装

pip工具安装使用 pip为python库软件管理工具pip docs 安装 wget https://bootstrap.pypa.io/ez_setup.py -O - | python 安装setuptools https://pypi.python.org/pypi/setuptoolswget https://bootstrap.pypa.io/get-pip.py -O - | python 安装pip工具 ttps://pypi.python.…

【技巧】Chrome应用技巧

把Chrome浏览器变成文本编辑器 在浏览器地址栏中输入一行代码&#xff1a;data:text/html, <html contenteditable>&#xff0c;回车即可把浏览器变临时编辑器。【CtrlShiftJ】调出JavaScript控制台&#xff0c;在控制台输入&#xff1a; document.body.contentEditable…

eclipse--python开发环境搭建

pydev插件介绍 PyDev is a Python IDE for Eclipse pydev官方网站&#xff1a;http://www.pydev.org/ 在Eclipse中安装pydev插件 启动Eclipse, 点击Help->Install New Software… 在弹出的对话框中&#xff0c;点Add 按钮。 Name中填:Pydev, Location中填http://pydev.or…

Win7虚拟无线AP以及Android手机抓包

设备要求 Windows7操作系统装有无线网卡的笔记本或台式机无线网卡必须支持“承载网络” 查看无线网卡是否支持“承载” 方法一: 开始菜单→所有程序→附件→命令提示符→右键“以管理员权限运行”; 键入命令“netsh wlan show drivers”,查看“支持承载网络”这一项,如果是…

CMD命令之BAT脚本路径信息

CD命令解疑 cd是chdir的缩写&#xff0c;命令详解参见cd /? 可以看到/d参数的解释如下&#xff1a; 使用 /D命令行开关&#xff0c;除了改变驱动器的当前目录之外&#xff0c;还可改变当前驱动器。 通常我们在xp系统中打开cmd窗口时&#xff0c;会显示 C:\Documents and Se…

Ubuntu开发环境搭建

在虚拟中试玩Ubuntu1604版本&#xff0c;有关安装后一些配置记录如下&#xff0c;以备后用。 简单设置 root密码设置 虚拟机安装完成后&#xff0c;默认不弃用root用户&#xff0c;需要给root设置密码后使用 sudo passwd root终端加入右键中 将终端加入右键后&#xff0c;在某…

Python GUI Programming (Tkinter)

Tkinter编程实例 #!/usr/bin/python #coding:utf-8from Tkinter import * import sysreload(sys) sys.setdefaultencoding(utf-8)class GUI_WINDOWS:def __init__(self, root):self.root Frame(root)self.driver Noneself.friendEdit Noneself.bStopQuery Falseself.loadF…

【ubuntu 22.04】安装vscode并配置正常访问应用商店

注意&#xff1a;要去vscode官网下载deb安装包&#xff0c;在软件商店下载的版本不支持输入中文 在ubuntu下用火狐浏览器无法访问vscode官网&#xff0c;此时可以手动进行DNS解析&#xff0c;打开DNS在线查询工具&#xff0c;解析以下主机地址&#xff08;复制最后一个IP地址&a…

Appium安装使用总结

开发环境搭建 搭建java JDK与Android SDK环境下载安装nodejs下载安装Appium 问题答疑 在测试中adb devices查询无缘无故多出陌生的虚拟设备 同事的经验是重启电脑&#xff0c;莫名其妙的设备消失&#xff1b;自我总结就是重启adb服务&#xff0c;adb kill-server&#xff0…

Python使用笔记总结目录

从2012年接触python&#xff0c;陆陆续续使用python将近3年。从最开始的使用python进行xml解析&#xff0c;到使用python做爬虫开发&#xff0c;再到最近半年的使用深度学习进行图像识别&#xff0c;python简洁易用&#xff0c;丰富的资源库&#xff0c;活跃的社区&#xff0c;…

原始套接字编程(1)

Linux下原始套接字的原理 创建原始套接字&#xff1a; socket(AF_NET, SOCK_RAW, protocol);1. 参数protocol用来致命所接收的协议包&#xff0c;如果是像IPPROTO_TCP(6)这种非0、非255的协议&#xff0c;能接收ip头为protocol域的数据包&#xff0c;包括IP头&#xff0c;协议…

VS 使用技能总结

常用快捷键 复制/剪切/删除整行代码 1&#xff09;如果你想复制一整行代码&#xff0c;只需将光标移至该行&#xff0c;再使用组合键“CtrlC”来完成复制操作&#xff0c;而无需选择整行。 2&#xff09;如果你想剪切一整行代码&#xff0c;只需将光标移至该行&#xff0c;再使…

vim使用总结

vim使用命令 【自动补全操作】 Ctrl n / Ctrl p 自动补全字符串Ctrl x Ctrl f 自动补全文件名 【多文件操作】 打开多个文件&#xff1a; vim file1 file2 … filen 在同一个窗口中打开所有想要打开的文件vim -o file1 file2 … filen 打开一个编辑会话&#xff0c;水平分…

内核编程之Hello_kernel

前言 通过hello_kernel编程达到以下目的: 内核编程框架了解模块参数调用模块间函数调用内核模块相关关的命令使用 环境准备 内核源码树准备,有两种方法: 方法1&#xff1a;从kernel.org下载内核源码&#xff0c;手动编译 方法2&#xff1a;通过yum安装与系统版本一致的内…