Linux 解压缩的命令怎么用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 解压缩的命令怎么用?相关的知识,希望对你有一定的参考价值。

[root@linux ~]# tar
[-cxtzjvfpPN] 文件与目录 ....
参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
   例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
   『 tar -zcvPf tfile sfile』才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!
范例:
范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
[root@linux ~]# tar -cvf
/tmp/etc.tar /etc tar -zcvf
/tmp/etc.tar.gz /etc
[root@linux ~]# tar -jcvf
/tmp/etc.tar.bz2 /etc
# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用
.tar 来作为辨识。
# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
# 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
# 上述指令在执行的时候,会显示一个警告讯息:
# 『tar: Removing leading `/’ from member names』那是关於绝对路径的特殊设定。

范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?
[root@linux ~]# tar -ztvf
/tmp/etc.tar.gz
# 由於我们使用 gzip 压缩,所以要查阅该 tar file
内的文件时,
# 就得要加上 z 这个参数了!这很重要的!

范例三:将 /tmp/etc.tar.gz 文件解压缩在
/usr/local/src 底下
[root@linux ~]# cd /usr/local/src
[root@linux src]# tar
-zxvf /tmp/etc.tar.gz
# 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,
# 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz

# 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc
# 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!

范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz
内的 etc/passwd 解开而已
[root@linux ~]# cd /tmp
[root@linux tmp]# tar
-zxvf /tmp/etc.tar.gz etc/passwd
# 我可以透过 tar -ztvf 来查阅 tarfile
内的文件名称,如果单只要一个文件,
# 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!

范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!
[root@linux ~]# tar -zxvpf
/tmp/etc.tar.gz /etc
# 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!

范例六:在 /home 当中,比 2005/06/01 新的文件才备份
[root@linux ~]# tar -N
’2005/06/01’ -zcvf home.tar.gz /home

范例七:我要备份 /home, /etc ,但不要 /home/dmtsai
[root@linux ~]# tar --exclude
/home/dmtsai -zcvf myfile.tar.gz /home/* /etc

范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!
[root@linux ~]# cd /tmp
[root@linux tmp]# tar
-cvf - /etc | tar -xvf -
# 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!
# 要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~
# 这分别代表 standard output, standard input 与管线命令啦!
# 这部分我们会在 Bash shell 时,再次提到这个指令跟大家再解释?!

gzip, zcat 命令

[root@linux
~]# gzip [-cdt#] 档名
[root@linux ~]# zcat 档名.gz
参数:
-c :将压缩的资料输出到萤幕上,可透过资料流重导向来处理;
-d :解压缩的参数;
-t :可以用来检验一个压缩档的一致性~看看文件有无错误;
-# :压缩等级,-1 最快,但是压缩比最差、-Array 最慢,但是压缩比最好!预设是 -6 ~
范例:
范例一:将 /etc/man.config ?制到 /tmp
,并且以 gzip 压缩
[root@linux ~]# cd /tmp
[root@linux tmp]# cp /etc/man.config
.
[root@linux tmp]# gzip man.config
# 此时 man.config 会变成 man.config.gz


范例二:将范例一的文件内容读出来!
[root@linux tmp]# zcat man.config.gz
# 此时萤幕上会显示 man.config.gz 解压缩之后的文件内容!!

范例三:将范例一的文件解压缩
[root@linux tmp]# gzip -d man.config.gz

范例四:将范例三解开的 man.config 用最佳的压缩比压缩,并保留原本的文件
[root@linux tmp]# gzip -Array -c
man.config > man.config.gz

bzip2, bzcat 命令

[root@linux ~]# bzip2
[-cdz] 档名
[root@linux ~]# bzcat 档名.bz2
参数:
-c :将压缩的过程产生的资料输出到萤幕上!
-d :解压缩的参数
-z :压缩的参数
-# :与 gzip 同样的,都是在计算压缩比的参数, -Array 最佳, -1 最快!
范例:
范例一:将刚刚的 /tmp/man.config 以 bzip2
压缩
[root@linux tmp]# bzip2 -z man.config
# 此时 man.config 会变成 man.config.bz2


范例二:将范例一的文件内容读出来!
[root@linux tmp]# bzcat man.config.bz2
# 此时萤幕上会显示 man.config.bz2 解压缩之后的文件内容!!

范例三:将范例一的文件解压缩
[root@linux tmp]# bzip2 -d man.config.bz2

范例四:将范例三解开的
man.config 用最佳的压缩比压缩,并保留原本的文件
[root@linux tmp]# bzip2 -Array -c
man.config > man.config.bz2

compress 命令

[root@linux ~]# compress
[-dcr] 文件或目录
参数:
-d :用来解压缩的参数
-r :可以连同目录下的文件也同时给予压缩呢!
-c :将压缩资料输出成为 standard output (输出到萤幕)
范例:
范例一:将 /etc/man.config ?制到 /tmp ,并加以压缩
[root@linux ~]# cd /tmp
[root@linux tmp]# cp /etc/man.config
.
[root@linux tmp]# compress man.config
[root@linux tmp]# ls -l
-rw-r--r-- 1 root root 2605 Jul 27 11:43 man.config.Z

范例二:将刚刚的压缩档解开
[root@linux tmp]# compress -d
man.config.Z

范例三:将 man.config 压缩成另外一个文件来备份
[root@linux tmp]# compress -c
man.config > man.config.back.Z
[root@linux tmp]# ll man.config*
-rw-r--r-- 1 root root 4506 Jul 27 11:43 man.config
-rw-r--r-- 1 root root 2605 Jul 27 11:46 man.config.back.Z
# 这个 -c 的参数比较有趣!他会将压缩过程的资料输出到萤幕上,而不是写入成为
# file.Z 文件。所以,我们可以透过资料流重导向的方法将资料输出成为另一个档名。
# 关於资料流重导向,我们会在 bash shell 当中详细谈论的啦!

dd 命令

[root@linux
~]# dd if="input_file"
of="outptu_file" bs="block_size"

count="number"
参数:
if :就是 input file ?~也可以是装置喔!
of :就是 output file 喔~也可以是装置;
bs :规划的一个 block 的大小,如果没有设定时,预设是 512 bytes
count:多少个 bs 的意思。
范例:

范例一:将 /etc/passwd 备份到 /tmp/passwd.back
当中
[root@linux ~]# dd if=/etc/passwd
of=/tmp/passwd.back
3+1 records in
3+1 records out
[root@linux ~]# ll /etc/passwd
/tmp/passwd.back
-rw-r--r-- 1 root root 1746 Aug 25 14:16 /etc/passwd
-rw-r--r-- 1 root root 1746 Aug 2Array 16:57 /tmp/passwd.back
# 仔细的看一下,我的 /etc/passwd 文件大小为
1746 bytes,因为我没有设定 bs ,
# 所以预设是 512 bytes 为一个单位,因此,上面那个 3+1 表示有 3 个完整的
# 512 bytes,以及未满 512 bytes 的另一个 block 的意思啦!
# 事实上,感觉好像是 cp 这个指令啦~

范例二:备份 /dev/hda 的 MBR
[root@linux ~]# dd if=/dev/hda
of=/tmp/mbr.back bs=512 count=1
1+0 records in
1+0 records out
# 这就得好好?解一下?~我们知道整颗硬盘的 MBR 为
512 bytes,
# 就是放在硬盘的第一个 sector 啦,因此,我可以利用这个方式来将
# MBR 内的所有资料都纪录下来,真的很厉害吧! ^_^

范例三:将整个 /dev/hda1 partition
备份下来。
[root@linux ~]# dd if=/dev/hda1
of=/some/path/filenaem
# 这个指令很厉害啊!将整个 partition 的内容全部备份下来~
# 后面接的 of 必须要不是在 /dev/hda1 的目录内啊~否则,怎么读也读不完~
# 这个动作是很有效用的,如果改天你必须要完整的将整个 partition 的内容填回去,
# 则可以利用 dd if=/some/file of=/dev/hda1 来将资料写入到硬盘当中。
# 如果想要整个硬盘备份的话,就类似 Norton 的 ghost 软体一般,
# 由 disk 到 disk ,嘿嘿~利用 dd 就可以啦~厉害厉害!

cpio 命令

[root@linux
~]# cpio -covB > [file|device]

[root@linux ~]# cpio -icduv
参数:
-o :将资料 copy 输出到文件或装置上
-i :将资料自文件或装置 copy 出来系统当中
-t :查看 cpio 建立的文件或装置的内容
-c :一种较新的 portable format 方式储存
-v :让储存的过程中文件名称可以在萤幕上显示
-B :让预设的 Blocks 可以增加至 5120 bytes ,预设是 512 bytes !
   这样的好处是可以让大文件的储存速度加快(请参考 i-nodes 的观念)
-d :自动建立目录!由於 cpio 的内容可能不是在同一个目录内,
如此的话在反备份的过程会有问题! 这个时候加上 -d 的话,
就可以自动的将需要的目录建立起来了!
-u :自动的将较新的文件覆盖较旧的文件!
范例:
范例一:将所有系统上的资料通通写入磁带机内!
[root@linux ~]# find / -print |
cpio -covB > /dev/st0
# 一般来说,使用 SCSI 介面的磁带机,代号是 /dev/st0
喔!

范例二:检查磁带机上面有什么文件?
[root@linux ~]# cpio -icdvt
[root@linux ~]# cpio -icdvt /tmp/content
# 第一个动作当中,会将磁带机内的档名列出到萤幕上面,而我们可以透过第二个动作,
# 将所有的档名通通纪录到 /tmp/content 文件去!

范例三:将磁带上的资料还原回来~
[root@linux ~]# cpio -icduv
# 一般来说,使用 SCSI 介面的磁带机,代号是 /dev/st0
喔!

范例四:将 /etc 底下的所有『文件』都备份到 /root/etc.cpio
中!
[root@linux ~]# find /etc -type
f | cpio -o > /root/etc.cpio
# 这样就能够备份?~您也可以将资料以 cpio -i
参考技术A

用法如下:

gzip,压缩文件名:zip或gz,解压命令:unzip

bzip2,压缩文件名:bz,解压命令;bzip2 -d

上面两个是最常用的压缩方式,一般在linux下可以通过tar命令实现打包和压缩(或解压)。例如:

tar -zcvf file file.tar.gz打包并压缩成gzip格式,其中-c命令是创建tar包,-z参数是指定压缩成gzip格式;

tar -zxvf file.tar.gz解包命令,其中-x是解包命令,-z指定解压缩格式是gzip

tar -jcvf file file.tar.bz2 打包并压缩成bzip2格式,其中-c是创建tar包,-j参数指定压缩成bzip2格式;

tar -jxvf file.tar.gz解包命令,其中-x是解包命令,-j指定解压缩格式是bzip2

参考技术B 如果是gzip压缩文件:
tar zxvf x.tar.gz

如果是bzip2压缩的
tar jxvf x.tar.bz2

有时扩展名命名不规范,需要用file确定目标文件的属性,比如x.abcde
[user@Host ~]$ file x.abcde
x.abcde: gzip compressed data, from Unix, last modified: Thu Jun 26 02:24:10 2008
这个输出结果就可以看到这个文件是gzip压缩的,就用tar zxvf了本回答被提问者采纳
参考技术C linux里面的压缩文件,一般是tar.gz 或者是zip文件;rar文件时没法解压缩的。
1、tar.gz 文件:tar zxvf 文件.tar.gz 文件会直接加压到当前目录
2、zip文件: unzip 文件.tar.gz 文件会直接加压到当前目录
参考技术D tar -zvxf xxxxx.tar.gz
tar -jvxf xxxxx.tar.bz2
unrar -x xxxxxx.rar
我常用的就这三种,所以也就记得这三个

linux下打包,压缩,解压缩

Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进 
行压缩了,所以首先就来讲讲tar命令的基本用法: 
  tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面 
来举例说明一下: 

  # tar -cf all.tar  *.jpg 
     这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。 

 

  # tar -rf all.tar  *.gif 

这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的 
意思。 


      # tar -uf  all.tar  logo.gif 
  这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。 

  # tar -tf  all.tar 
  这条命令是列出all.tar包中所有文件,-t是列出文件的意思 


  # tar -xf all.tar 
  这条命令是解出all.tar包中所有文件,-x是解开的意思 


  以上就是tar的最基本的用法。为了方便用户在打包解包的同时可以压缩或解压 
文件,tar提供了一种特殊的功能。这就是tar可以在打包或解包的同时调用其它的压 
缩程序,比如调用gzip、bzip2等。 


  1) tar调用gzip 
  gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip 
相对的解压程序是gunzip。tar中使用-z这个参数来调用gzip。下面来举例说明一下 


  # tar -czf   all.tar.gz   *.jpg 
  这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个 
gzip压缩过的包,包名为all.tar.gz 


  # tar     -xzf    all.tar.gz
  这条命令是将上面产生的包解开。

 
  2) tar调用bzip2
  bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。 
与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用bzip2。下面来举例:


  # tar   -cjf   all.tar.bz2   *.jpg
  这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个 
bzip2压缩过的包,包名为all.tar.bz2

 
  # tar   -xjf    all.tar.bz2
  这条命令是将上面产生的包解开。

 
3)  tar调用compress 
  compress也是一个压缩程序,但是好象使用compress的人不如gzip和bzip2的人 
多。.Z结尾的文件就是compress压缩的结果。与 compress相对的解压程序是uncompress 
。tar中使用-Z这个参数来调用compress。下面来举例说明一下:


  # tar  -cZf  all.tar.Z  *.jpg 
  这条命令是将所有.jpg的文件打成一个tar包,并且将其用compress压缩,生成
一个uncompress压缩过的包,包名为all.tar.  

  # tar  -xZf   all.tar.Z 
  这条命令是将上面产生的包解开 

  有了上面的知识,你应该可以解开多种压缩文件了,下面对于tar系列的压缩文 
件作一个小结: 
  1)对于.tar结尾的文件 
             tar -xf all.tar 
  2)对于.gz结尾的文件 
         gzip -d   all.gz 
         gunzip   all.gz 
  3)对于.tgz或.tar.gz结尾的文件 
         tar -xzf   all.tar.gz 
         tar -xzf   all.tgz 
  4)对于.bz2结尾的文件 
         bzip2 -d   all.bz2 
         bunzip2   all.bz2 
  5)对于tar.bz2结尾的文件 
         tar   -xjf    all.tar.bz2 
  6)对于.Z结尾的文件 
         uncompress   all.Z 
  7)对于.tar.Z结尾的文件 
         tar -xZf    all.tar.z 

  另外对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它 
们: 
  1)对于.zip 
  linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。它们的参 
数选项很多,这里只做简单介绍,依旧举例说明一下其用法: 
  # zip   all.zip   *.jpg 
  这条命令是将所有.jpg的文件压缩成一个zip包 
      # unzip    all.zip 
  这条命令是将all.zip中的所有文件解压出来 
  2)对于.rar 
  要在linux下处理.rar文件,需要安装RAR for Linux,可以从网上下载,但要记住,RAR for Linux 不是免费的;可从http://www.rarsoft.com/download.htm下载RARfor Linux 3.2. 
0,然后安装: 
  # tar -xzpvf rarlinux-3.2.0.tar.gz 
  # cd rar 
  # make 
  这样就安装好了,安装后就有了rar和unrar这两个程序,rar是压缩程序,unrar 是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法: 

  # rar  a  all *.jpg 
  这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar 
扩展名将自动附加到包名后。 
  # unrar e all.rar 
  这条命令是将all.rar中的所有文件解压出来 
  到此为至,我们已经介绍过linux下的tar、gzip、gunzip、bzip2、bunzip2、compress 、 uncompress、 zip、unzip、rar、unrar等程式,你应该已经能够使用它们对.tar 、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、. Z、.tar.Z、.zip、.rar这10种压缩文 
件进行解压了,以后应该不需要为下载了一个软件而不知道如何在Linux下解开而烦恼了。而且以上方法对于Unix也基本有效。 
  本文介绍了linux下的压缩程式tar、gzip、gunzip、bzip2、bunzip2、compress 、uncompress、 zip、 unzip、rar、unrar等程式,以及如何使用它们对.tar、.gz 、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、. tar.Z、.zip、.rar这10种压缩文件进行 
操作。 

以下补充 

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

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。 

-z:有gzip属性的 
-j:有bz2属性的 
-Z:有compress属性的 
-v:显示所有过程 
-O:将文件解开到标准输出 

下面的参数-f是必须的 
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。 
# tar -cf all.tar *.jpg这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。 
# tar -rf all.tar *.gif 
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。 
# tar -uf all.tar logo.gif 
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。 
# tar -tf all.tar 
这条命令是列出all.tar包中所有文件,-t是列出文件的意思 
# tar -xf all.tar 
这条命令是解出all.tar包中所有文件,-x是解开的意思 
压缩 
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg 
tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz 
tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2 
tar –cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z 
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux 
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux 

解压 
tar –xvf file.tar //解压 tar包 
tar -xzvf file.tar.gz //解压tar.gz 
tar -xjvf file.tar.bz2 //解压 tar.bz2 
tar –xZvf file.tar.Z //解压tar.Z 
unrar e file.rar //解压rar 
unzip file.zip //解压zip 

总结 
1、*.tar 用 tar –xvf 解压 
2、*.gz 用 gzip -d或者gunzip 解压 
3、*.tar.gz和*.tgz 用 tar –xzf 解压 
4、*.bz2 用 bzip2 -d或者用bunzip2 解压 
5、*.tar.bz2用tar –xjf 解压 
6、*.Z 用 uncompress 解压 
7、*.tar.Z 用tar –xZf 解压 
8、*.rar 用 unrar e解压 
9、*.zip 用 unzip 解压

以上是关于Linux 解压缩的命令怎么用?的主要内容,如果未能解决你的问题,请参考以下文章

linux下常见解压缩命令

7z解压缩命令

linux下打包,压缩,解压缩

linux解压命令汇总

Linux下的tar压缩解压缩命令详解

Linux下的tar压缩解压缩命令详解