Linux常见常用的压缩包文件格式有:*.zip(zip程序打包压缩的文件),*.rar(rar程序压缩的文件),*.7z(7zip程序压缩的文件),*.tar(tar程序打包,未压缩的文件),*.gz(gzip程序(GNU zip)压缩的文件),*.xz(xz程序压缩的文件),*.bz2(bzip2程序压缩的文件),*.tar.gz(tar打包,gzip压缩的文件),*.tar.xz(tar打包,xz程序压缩的文件),*tar.bz2(tar打包,bzip2程序压缩的文件),*.tar.7z(tar打包,7z程序压缩的文件)。
zip压缩打包程序
$ zip -r -q -o shiyanlou.zip /home/shiyanlou //-r表示递归打包包含子目录的全部内容 -q表示为安静模式,即不向屏幕输出信息,-o变数输出文件,需在其后紧跟打包输出文件名
$ du -h shiyanlou.zip //查看打包后文件的大小
$ file shiyanlou.zip
$ zip -r -1 -q -o -p shiyanlou_1.zip /home/shiyanlou -x ~/*.zip //-1表示压缩级别(1~9),1表示快压缩但体积大,9表示体积小但耗时最久 -x表示排除我们上一次创建的zip文件,这里只能使用绝对路径。
$ du -h -d 0 *.zip ~ | sort //用du命令查看默认 -h(human readble) -d(max depth)
$ zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou //创建加密zip
$ zip -r -l -o shiyanlou.zip /home/shiyanlou //-l参数将LF转换为CR+LF(Windows系统与Linux/Unix在文本文件格式上存在一些兼容问题)
使用unzip命令解压缩zip文件
$ unzip shiyanlou.zip
$ unzip -q shiyanlou.zip -d ziptest //使用安静模式将文件解压到指定目录
$ unzip -l shiyanlou.zip //只查看压缩包内的内容
使用unzip解压时我们应该主要中文编码兼容问题,Windows系统创建的压缩文件含有中文时默认会采用GBK或其他编码,Linux默认使用UTF-8编码。
$ unzip -O GBK zipName.zip
rar打包压缩命令
Linux上使用rar和unrar工具创建和解压rar压缩包。
$ sudo apt-get update;sudo apt-get install rar unrar //安装rar和unrar
$ rm *.zip
$ rar a shiyanlou.rar . //从制定文件或目录创建压缩包或添加文件到压缩
$ rar d shiyanlou.rar .zshrc //从指定压缩包文件中删除某个文件
$ rar l shiyanlou.rar //查看不解压文件
$ unrar x shiyanlou.rar //全路径解压
$ mkdir tmp
$ unrar e shiyanlou.rar tmp //去掉路径解压
tar打包工具
在Linux上常用的是tar工具。tar的解压和压缩都是同一个命令,只是参数不同。
$ tar -cf shiyanlou.tar ~ //创建一个tar包 -c表示创建一个tar包文件,-f指定创建的文件名 -v表示以可视的方式输出打包文件 -P保留绝对路径
$ mkdir tardir
$ tar -xf shiyanlou.tar -C tardir //解包一个文件到指定路径的已存在目录(-C)
$ tar -tf shiyanlou.rar //只查看不解压包文件(-t)
$ tar -cphf etc.rar /etc //保留文件属性和跟随链接(符号链接或软链接)。当你在其他主机还原时希望保留文件的属性(-p)和备份链接指向的源文件为不是链接本身(-h)
$ tar -czf shiyanlou.tar.gz ~ //在创建tar文件的基础上添加-z参数,使用gzip压缩文件
$ tar -xzf shiyanlou.tar.gz //解压.tar.gz文件
压缩文件格式 参数
*.tar.gz -z
*.tar.xz -J
*tar.bz2 -j
$ sudo apt-get update; sudoo apt-get install libaa-bin
$ aafire //小火炉