Linux 压缩和打包文件
在使用计算机的时候,压缩文件应该是经常会用到的功能。首先:通过压缩文件可以减小文件体积,节省存储空间。其次:通过打包或压缩文件可以把多个文件整合为一个文件,方便传输,尤其是对于多个小文件。这里就来简单的写一下 Linux 的压缩和打包文件,使用的是 Linux 自带的 gzip、bzip2、xz,其他的压缩工具例如 rar 以后有时间再写,为了方便查看,这里把压缩和打包分开写。
打包文件
打包文件就是把多个文件整合为一个文件,主要是打包,没有压缩,下面是 /home
目录的两个文件,文件大小为 6字节:
root@DESKTOP-VKKQVTF:/home# ls -lh
总用量 0
-rw-rw-rw- 1 root root 6 12月 27 23:55 1.txt
-rw-rw-rw- 1 root root 6 12月 27 23:56 2.txt
打包的命令是 tar cf 新文件名 要打包文件的文件名
,多个文件可用空格分隔,下面把 1.txt
和 2.txt
打包为一个名为 12.tar
的文件:
root@DESKTOP-VKKQVTF:/home# tar cf 12.tar 1.txt 2.txt
root@DESKTOP-VKKQVTF:/home# ls
12.tar 1.txt 2.txt
查看一下大小:
root@DESKTOP-VKKQVTF:/home# ls -lh
总用量 12K
-rw-rw-rw- 1 root root 10K 12月 28 00:03 12.tar
-rw-rw-rw- 1 root root 6 12月 27 23:55 1.txt
-rw-rw-rw- 1 root root 6 12月 27 23:56 2.txt
可以看到两个 6B 的文件打包后变成了10K,下面在把 /tmp
目录下的 5 个 2.3K 的文件进行打包:
root@DESKTOP-VKKQVTF:/tmp# ls -lh
总用量 20K
-rw-rw-rw- 1 root root 2.3K 12月 28 00:11 1.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:12 2.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 3.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 4.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 5.txt
root@DESKTOP-VKKQVTF:/tmp# tar cf 12345.tar 1.txt 2.txt 3.txt 4.txt 5.txt
root@DESKTOP-VKKQVTF:/tmp# ls -lh
总用量 52K
-rw-rw-rw- 1 root root 20K 12月 28 00:16 12345.tar
-rw-rw-rw- 1 root root 2.3K 12月 28 00:11 1.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:12 2.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 3.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 4.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 5.txt
5 个 2.3K 的文件打包后变成了 20K,多出来的那几 K 应该是存储的文件信息,如果要打包目录也是可以的,要打包的文件名写目录名即可。后缀名使用 tar
是为了方便查看和辨认。
使用 tar tf 文件名
可查看打包的文件,下面是查看 /home
目录下的 12.tar
:
root@DESKTOP-VKKQVTF:/home# ls
12.tar 1.txt 2.txt
root@DESKTOP-VKKQVTF:/home# tar tf 12.tar
1.txt
2.txt
使用 tar xf 文件名
可提取文件,下面还是提取 /home
目录下的 12.tar
里的文件:
root@DESKTOP-VKKQVTF:/home# ls
12.tar
root@DESKTOP-VKKQVTF:/home# tar xf 12.tar
root@DESKTOP-VKKQVTF:/home# ls
12.tar 1.txt 2.txt
使用 tar vf 文件名
可查看文件信息,下面是查看 /home/12.tar
的文件信息:
root@DESKTOP-VKKQVTF:/home# tar vf 12.tar
tar: You must specify one of the '-Acdtrux', '--delete' or '--test-label' options
Try 'tar --help' or 'tar --usage' for more information.
root@DESKTOP-VKKQVTF:/home#
下面是 tar
的参数说明:
参数 | 说明 |
---|---|
c | 打包文件 |
t | 查看已打包的文件 |
x | 提取文件 |
v | 查看文件信息 |
f | 文件,用来分隔参数和文件名 |
使用的方法上面都有,tar 参数f 文件名
,参数前面不用加 -
。
压缩文件
gzip
压缩文件和打包文件的命令差不多,创建压缩文件也需要用到 tar
打包文件的参数,使用 tar zcf 文件名 要压缩的文件名
,下面把 /tmp
目录下的 5 个 txt
文件进行压缩:
root@DESKTOP-VKKQVTF:/tmp# ls -lh
总用量 40K
-rw-rw-rw- 1 root root 20K 12月 28 00:16 12345.tar
-rw-rw-rw- 1 root root 2.3K 12月 28 00:11 1.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:12 2.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 3.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 4.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 5.txt
root@DESKTOP-VKKQVTF:/tmp# tar zcf 12345.tar.gz 1.txt 2.txt 3.txt 4.txt 5.txt
root@DESKTOP-VKKQVTF:/tmp# ls -lh
总用量 44K
-rw-rw-rw- 1 root root 20K 12月 28 00:16 12345.tar
-rw-rw-rw- 1 root root 690 12月 28 16:55 12345.tar.gz
-rw-rw-rw- 1 root root 2.3K 12月 28 00:11 1.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:12 2.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 3.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 4.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 5.txt
root@DESKTOP-VKKQVTF:/tmp#
5 个 2.3K 的文件压缩后变为 690字节,相比起打包文件来说,效果还是比较明显的,这里的后缀名还是为了方便查看和辨认,关于查看和解压文件:方法和上面的查看文件和提取文件是一样的,tar 参数f 文件名
。
bzip2
压缩文件 tar jcf 文件名 要压缩的文件名 ,下面还是把/tmp目录下的5个txt文件进行压缩:
root@DESKTOP-VKKQVTF:/tmp# tar jcf 12345.tar.bz2 1.txt 2.txt 3.txt 4.txt 5.txt
root@DESKTOP-VKKQVTF:/tmp# ls -lh
总用量 48K
-rw-rw-rw- 1 root root 20K 12月 28 00:16 12345.tar
-rw-rw-rw- 1 root root 834 12月 28 17:06 12345.tar.bz2
-rw-rw-rw- 1 root root 690 12月 28 16:55 12345.tar.gz
-rw-rw-rw- 1 root root 2.3K 12月 28 00:11 1.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:12 2.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 3.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 4.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 5.txt
5个2.3K的文件压缩后变为834字节。
xz
压缩文件 tar Jcf 文件名 要压缩的文件名
,这里的 J
使用大写,下面还是压缩 /tmp
目录下的 5 个 txt
文件:
root@DESKTOP-VKKQVTF:/tmp# tar Jcf 12345.tar.xz 1.txt 2.txt 3.txt 4.txt 5.txt
root@DESKTOP-VKKQVTF:/tmp# ls -lh
总用量 52K
-rw-rw-rw- 1 root root 20K 12月 28 00:16 12345.tar
-rw-rw-rw- 1 root root 834 12月 28 17:06 12345.tar.bz2
-rw-rw-rw- 1 root root 690 12月 28 16:55 12345.tar.gz
-rw-rw-rw- 1 root root 616 12月 28 17:11 12345.tar.xz
-rw-rw-rw- 1 root root 2.3K 12月 28 00:11 1.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:12 2.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 3.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 4.txt
-rw-rw-rw- 1 root root 2.3K 12月 28 00:15 5.txt
5 个 2.3K 的文件压缩后变为 616字节,看来效果还是可以的。
下面是 3 种压缩文件的参数:
压缩工具 | 参数 | 后缀名 |
---|---|---|
gzip | z | gz |
bzip2 | j | bz2 |
xz | J | xz |
后缀名只是为了方便查看,这里的压缩是和tar打包一起使用的,解压和查看文件可以参考上面的打包相关的命令,关于 rar 和 7z 相关的工具以后有时间再写。
相关文章:
版权声明:本文为原创文章,版权归 Mr. Ma's Blog 所有,转载请联系博主获得授权。
本文地址:https://www.misterma.com/archives/278/
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。