Linux中文件的压缩与解压缩

Posted 夏风喃喃

tags:

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

Linux中文件的压缩与解压缩

参考:鳥哥的 Linux 私房菜
http://linux.vbird.org/linux_basic/0240tarcompress.php#compress_name

压缩与解压

在Linux的环境中,压缩文件的扩展名大多是:
*.tar, *.tar.gz, *.tgz, *.gz, *. Z, *.bz2, *.xz

*.Z         compress 程式壓縮的檔案;
*.zip       zip 程式壓縮的檔案;
*.gz        gzip 程式壓縮的檔案;
*.bz2       bzip2 程式壓縮的檔案;
*.xz        xz 程式壓縮的檔案;
*.tar       tar 程式打包的資料,並沒有壓縮過;
*.tar.gz    tar 程式打包的檔案,其中並且經過 gzip 的壓縮
*.tar.bz2   tar 程式打包的檔案,其中並且經過 bzip2 的壓縮
*.tar.xz    tar 程式打包的檔案,其中並且經過 xz 的壓縮

Linux上常见的压缩指令就是gzipbzip2 以及最新的 xztar 功能仅是’打包’而已,亦即是将很多档案集结成为一个档案, 事实上,他并没有提供压缩的功能。

gzip

gzip 可以说是应用度最广的压缩指令了, 当前 gzip可以解开 compress, zip 与 gzip 等软件所压缩的文件。在默认的状态下原本的文件将被压缩成为 .gz 的文件名,原始文件就不再存在了。使用 gzip 压缩的文件在 Windows 系统中,可以被 WinRAR/7zip 软件解压缩。

$ gzip -v 未被压缩的文件名  #压缩,可以顯示出原檔案/壓縮檔案的壓縮比等資訊
$ gzip -d 已被压缩的文件名(.gz)  #解压缩

bzip2

bzip2 则是为了取代 gzip 并提供更佳的压缩比而来的。

$ bzip2 -v 未被压缩的文件名  #压缩,可以顯示出原檔案/壓縮檔案的壓縮比等資訊
$ bzip2 -d 已被压缩的文件名(.bz2)  #解压缩

xz

xz的压缩比更高。

$ xz -v 未被压缩的文件名  #压缩,可以顯示出原檔案/壓縮檔案的壓縮比等資訊
$ xz -d 已被压缩的文件名(.bz2)  #解压缩

rar

rar a -r 压缩文件(.zip) 待压缩文件 # 压缩文件,-r递归压缩
unrar x 压缩文件(.zip) 解压目标目录 # 解压文件

zip

zip -r 压缩文件(.zip) 待压缩文件 # 压缩文件,-r递归压缩
unzip 压缩文件(.zip) 解压目标目录 # 解压文件

打包

虽然gzip, bzip2, xz也能够针对目录来进行压缩,不过, 这两个指令对目录的压缩指的是’将目录内的所有档案 “分别” 进行压缩’的动作,不像在 Windows 的系统,可以使用类似WinRAR这一类的压缩软件来将好多资料’包成一个文件’的样式。

tar 可以将多个目录或档案打包成一个大文件,同时还可以通过 gzip/bzip2/xz 的支持,将该文件同时进行压缩。由于tar 的使用太广泛了,目前 Windows 的 WinRAR 也支持 .tar.gz 档名的解压缩。

tar

$ tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
$ tar -jxv -f filename.tar.bz2 -C 欲解压缩的目标目录
-z:透過 gzip  的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.gz
-j:透過 bzip2 的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.bz2
-J:透過 xz    的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.xz
-c:建立打包檔案,可搭配 -v 來察看過程中被打包的檔名(filename)
-x:解打包或解壓縮的功能,可以搭配 -C (大寫) 在特定目錄解開
-v:在壓縮/解壓縮的過程中,將正在處理的檔名顯示出來!

那个filename.tar.bz2是我们自己取的文件名,tar 并不会主动的产生建立的文件名。

以上是关于Linux中文件的压缩与解压缩的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统文件的压缩与解压缩

Linux压缩与解压缩文件

Linux中常见的压缩与解压缩方法

Linux 基础知识 | 文件压缩与解压缩

Linux下tar压缩与解压缩文件

linux 文件压缩与解压缩