Linux 中的几种解压与压缩

解压&压缩文件

tar是把文件打成一个包,并不压缩;
gz是用gzip把打成包的.tar文件压缩;
所以成了一个.tar.gz的文件

压缩

$ tar cvfz backup.tar.gz /xxx/
-c, --create
              create a new archive

       -v, --verbose
              verbosely list files processed

       -f, --file [HOSTNAME:]F
              use archive file or device F (default /dev/rmt0)

       -z, --gzip, --ungzip
              filter the archive through gzip

解压

$ tar -zxvf xxx.tar.gz
这样会生成一个以文件名命名的文件夹
-z, --gzip, --ungzip
              filter the archive through gzip

       -x, --extract, --get
              extract files from an archive

       -v, --verbose
              verbosely list files processed

       -f, --file [HOSTNAME:]F
              use archive file or device F (default /dev/rmt0)

查看文件列表

$ tar -tvzf * .tar.gz
 -t, --list
              list the contents of an archive

tar,gzip的使用方法

  • 1.压缩一组文件为tar.gz后缀:
$ tar cvf backup.tar /etc   # gzip -q backup.tar 

$ tar cvfz backup.tar.gz /etc/
  • 2.释放一个后缀为tar.gz的文件:
$ gunzip backup.tar.gz #tar xvf backup.tar 

$ tar xvfz backup.tar.gz
  • 3.用一个命令完成压缩
$ tar cvf - /etc/ | gzip -qc > backup.tar.gz
  • 4.用一个命令完成释放
$ gunzip -c backup.tar.gz | tar xvf -
  • 如何解开tar.Z的文件?
$ tar xvfz backup.tar.Z

$ uncompress backup.tar.Z #tar xvf backup.tar
  • 5.如何压缩和解压缩.bz2的包?
$ bzip2 /etc/smb.conf 这将压缩文件smb.conf成smb.conf.bz2 
$ bunzip2 /etc/smb.conf.bz2 这将在当前目录下还原smb.conf.bz2为smb.conf 

注:.bz2压缩格式不是很常用,可以man bzip2
-6. 如何解压tar.bz2的包?

$ tar   jxf   linux-2.8.18.8.tar.bz2

下面详细介绍一下Linux中不同格式的压缩与解压:

Linux中几种格式的解压与压缩

  • 约定:
    FileName表示文件名,不能是目录名
    name表示可以是文件名,也可以是目录名。
    DirName表示目录名
    可以用vim预览压缩包里的东西,例如:
$ vim Filename.tar.xz

防止解压出一堆散的文件污染目标文件夹

解压

rar

  • 解压到当前目录
$ rar e FileName.rar

(其中'e':extract的e)

  • 解压到指定目录:
$ rar x FileName.rar DirName/

(其中'x':extract的x) DirName后面一定要加'/',例如~/lalala

创建

$ rar a FileName.rar DirName

(注:DirName后加不加“/”都行
如果要指定目标文件路径,可以在FileName指定。如~/backup/sth.rar)

zip(unzip)

  • 解压到当前目录:
$ unzip FileName.zip
  • 解压到指定目录(-d)
$ unzip FileName.zip -d DirName
  • 创建(-r)
$ zip FileName.zip -r DirName

.tar(-xvf)

  • 解压到当前目录
$ tar -xvf FileName.tar
x: 解压文件(extract里的x)
v: 打印详细信息(verbose)
f: 指定文件名(file)
  • 解压到指定目录(-C)
$ tar -xvf FileName.tar -C DirName

C: 解压到制定目录
凡是用tar命令解压,都可以使用这个选项来指定输出路径,如tar.gz和tar.xz

  • 创建(-cvf.files)
$ tar -cvf FileName.tar files

其中files可以是文件夹名,也可以是表示文件的正则表达式(如*.jpg)

Pay attention:

c: 压缩(compress)上面的files不要使用绝对路径如/usr/share/fonts,甚至/backup也不行(因为”“会被翻译成/home/用户名)。tar加入文件时会把文件的相对位置也加进去,解压出来的文件都根据它们的相对位置放到解压到的目录。因此进行压缩时要cd到要压缩的文件或文件夹所在目录。
##.gz(gzip -d)

  • 解压到当前目录
$ gzip -d FileName.gz

d: 解压(decompress)
会自动把原来的FileName.gz删除并生成解压后的文件。

$ gzip -dk FileName.gz
  • 压缩到当前目录
$ gzip FileName

会自动把原文件删掉并创建FileName.gz。
gzip的常用选项:
k: 保留源文件(keep)

gzip其他常用选项
v: 打印详细信息(verbose)

.tar.gz(tar -zxvf、-zcvf)

.tar.gz就是对tar文件用gzip压缩得到的文件。所以解压可以先解压gz,再解压tar,压缩也可以先压缩成tar,再压缩成gz。

  • 解压到当前目录
$ tar -zxvf FileName.tar.gz

z表示gz

  • 解压到指定目录
$ tar -zxvf FileName.tar.gz -C path
  • 创建
$ tar -zcvf FileName.tar.gz files

其中files可以是文件夹名,也可以是表示文件的正则表达式(如*.jpg)

.xz

xz格式压缩率极高,但是压缩和解压也极慢

  • 单线程解压到当前目录
$ xz -d FileName.xz

会自动把源文件删除,然后生成文件FileName。可以用选项k保存源文件

$ xz -dk FileName.xz

k:keep

  • 解压为指定文件名
$ xz -dc FileName.xz > FileName2

c: 把压缩文件输出到stdout。不删除源文件

  • 单线程压缩到当前目录
$ xz -z FileName

c: 把压缩文件输出到stdout。不删除源文件

$ xz -zk FileName
  • 多线程压缩
$ xz -zkT0 FileName

T: 使用多线程,后面跟线程数。如果参数是0,则表示使用[机器核心数]个线程。

这种方法只能压缩文件。多线程压缩目录的方法见.tar.xz

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rubyxxxs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值