Linux最常用的几个归档和压缩命令

发布时间:2024年01月08日

Linux最常用的几个归档和压缩命令

仅个人想法,会持续不间断更新和改进。

繁忙的世界中,偶尔也需要放空一下自己,找寻一下自我。

简而言之,就是要解压一下。

那么在Linux的世界里,也是有不少的解压方法的。

解压方法之一 tar

Linux的tar命令可以用来压缩或者解压缩文件。

官方定义为:

tar - an archiving utility

语法

$ tar optionA [optionsB] filename

使用该命令时,optionA选项是必须要有的,它告诉tar要做什么事情,optionsB选项是辅助使用的,可以选用。

其中optionsA主要为:

  • -c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。相当于打包。
  • -x 从档案文件中释放文件。相当于拆包。
  • -t 列出档案文件的内容,查看已经备份了哪些文件。

不过需要注意的是,这三个参数仅仅能存在一个。

辅助选项常用的为:

  • -z :是否同时具有 gzip 的属性,有的话压缩文件格式为:filename.tar.gz
  • -j :是否同时具有 bzip2 的属性,有的话压缩文件格式为:filename.tar.bz2
  • -v :压缩的过程中显示文件,这个基本都需要带上
  • -p :使用原文件的原来属性(属性不会依据使用者而变)
  • --exclude FILE:在压缩的过程中,不要将 FILE 打包!

压缩文件

接下来的命令为把a,b,c,d压缩到文件test.tar.gz中。

$ tar czvf test.tar.gz a b c d
a
b
c
d

查看压缩文件的内容

接下来的命令将列出压缩文件的内容,但是不解压,所以可以先确定,再解压不迟

$ tar tzvf test.tar.gz a b c d
-rw-rw-r-- oper/oper           12 2010-05-24 22:51 a
-rw-rw-r-- oper/oper           18 2010-05-24 22:51 b
-rw-rw-r-- oper/oper           15 2010-05-24 22:51 c
-rw-rw-r-- oper/oper           28 2010-05-24 22:51 d

解压文件

接下来就可以解压操作了。

$ tar zxvf test.tar.gz
a
b
c
d

解压方法之一 zip

Linux zip命令的功能是用于压缩文件,解压命令为unzip

通过zip命令可以将很多文件打包成.zip格式的压缩包,里面会包含文件的名称、路径、创建时间、上次修改时间、权限等信息,与tar命令相似。

对于类似文本文件而言,压缩比基本可以达到2:1到3:1.

官方的定义为:

zip - package and compress (archive) files

语法

zip的参数超级的多,各种设置也是很巧妙,不过常用的就几个,其他的放在后面再说。

$ zip  [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [--longoption ...]  [-b path] [-n suffixes] [-t date] [-tt date] [zipfile [file ...]]  [-xi list]

参数

  • -r--recurse-paths :遍历整个目录 for example:

  • -j--junk-paths: 仅保存文件名,而不保存路径。默认情况下zip将保存整个路径

参考实例

将指定目录及其内全部文件都打包成zip格式压缩包文件:

$ zip -r backuptest.zip /etc
  adding: etc/resolv.conf (stored 0%)
  adding: etc/fonts/ (stored 0%)
  adding: etc/fonts/conf.d/ (stored 0%)
  adding: etc/fonts/conf.d/65-0-wqy-zenhei-sharp.conf (deflated 88%)
  adding: etc/fonts/conf.d/59-liberation-mono.conf (deflated 57%)
  adding: etc/fonts/conf.d/57-paratype-pt-sans.conf (deflated 66%)
  adding: etc/fonts/conf.d/59-liberation-sans.conf (deflated 74%)
  adding: etc/fonts/conf.d/65-0-ttf-arphic-uming.conf (deflated 87%)
  adding: etc/fonts/conf.d/65-1-vlgothic-gothic.conf (deflated 74%)
  adding: etc/fonts/conf.d/65-0-lohit-nepali.conf (deflated 57%)
  adding: etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf (deflated 43%)
  adding: etc/fonts/conf.d/61-urw-d050000l.conf (deflated 71%)
  adding: etc/fonts/conf.d/57-dejavu-sans.conf (deflated 77%)
  ...

zip还支持通配符的表达,比如将当前工作目录内所有以.jpg为后缀的文件打包:

$ zip -r backuptest.zip *.jpg
  adding: test0.jpg (deflated 56%)
  adding: test10.jpg (deflated 56%)
  adding: test12.jpg (deflated 56%)
  adding: test14.jpg (deflated 56%)
  adding: test16.jpg (deflated 56%)
  adding: test18.jpg (deflated 56%)
  adding: test20.jpg (deflated 56%)
  adding: test2.jpg (deflated 56%)
  adding: test22.jpg (deflated 56%)
  adding: test24.jpg (deflated 56%)
  adding: test26.jpg (deflated 56%)
  adding: test28.jpg (deflated 56%)

仅保存文件名

zip默认情况下会保存路径信息,如果加上-j将不保存路径信息,而仅仅保存文件。
这个情况可以在希望把同一类文件放在一起时比较有用。

$ zip -j foo foo/*

解压命令之一 unzip

Linux unzip命令用于解压缩zip文件。

官方的定义为:

unzip - list, test and extract compressed files in a ZIP archive

基本命令

$ unzip file.zip

unzip 只需在命令后跟上要解压的文件名,如 file.zip,将该压缩文件解压缩到当前目录。

指定目录解压

如果需要指定解压缩的目标目录,可以使用 -d 参数:

$ unzip archive.zip -d /path/where/to/extract

这样就会把压缩文件解压到指定的目录中。

不解压某些文件

如果压缩的文件巨大,而不想解压其中的某些,可以用下面的命令

$ unzip file.zip -x data

这个命令的意思为,解压file.zip,但是不把里面的data解压。

解压命令之一 gzip

gzip用于对后缀为gz文件进行解压:

$ gzip -d data.gz

这个命令将解压examplefile.gz,并且在当前目录下生成一个名为data的解压后的文件。

但特别需要留意的是,这个操作会删除源文件,会删除源文件,会删除源文件。

所以如果你想保留原始压缩文件,一定记得使用-k选项:

$ gzip -dk data.gz

这会保留原始的data.gz文件,并生成一个解压后的data文件。

更多信息

Hi,XDJM们,更多信息欢迎移步我的主页CSDN或微信公众号letsProgramming.

  • 🐱 github
  • 🏠 Homepage https://shaoguangleo.github.io
  • CSDN CSDN http://blog.csdn.net/shaoguangleo
  • 微信公众号:letsProgramming
文章来源:https://blog.csdn.net/shaoguangleo/article/details/135466629
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。