Merge files or folders into a package, and then compress the data through a compression algorithm to reduce the size of the package and facilitate network transmission.
windows: zip rar linux: zip tar gz bz2 tar.gz tar.bz2 压缩算法: gzip bzip2
is a commonly used packaging and compression tool in Windows and Linux. The supported compression algorithm is zip.
zip工具需要安装 yum install zip
# 格式 zip [参数] 压缩包名称 文件路径 [root@abc ~]# zip 123.zip 123.log adding: 123.log (deflated 87%) [root@abc ~]# ls -l
# 需要一个-r参数去递归压缩文件夹下的所有内容 [root@abc ~]# zip -r dir.zip dir/ adding: dir/ (stored 0%) adding: dir/one/ (stored 0%) adding: dir/123.log (deflated 87%)
# -q:参数就是不输出任何打包信息 [root@abc opt]# zip -r -q etc.zip /etc/ [root@abc opt]# ls -l
# 格式 unzip [参数] 压缩包路径 # unzip解压命令只能解压由zip打包的压缩文件 [root@abc ~]# unzip dir.zip Archive: dir.zip inflating: dir/123.log [root@abc ~]# # 其他压缩包由unzip解压时随即报错。 [root@abc opt]# unzip nginx-.tar.gz Archive: nginx-.tar.gz End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. unzip: cannot find zipfile directory in one of nginx-.tar.gz or nginx-.tar.gz.zip, and cannot find nginx-.tar.gz.ZIP, period. # 查看压缩包中压缩那些内容,不解压? # 只查看压缩包内容不解压需要使用 -l 参数 [root@abc opt]# unzip -l dir.zip Archive: dir.zip Length Date Time Name --------- ---------- ----- ---- 0 03-11-2021 12:04 dir/ --------- ------- 0 1 file # 解压到指定目录(-d) [root@abc ~]# unzip -d /root/ etc.zip [root@abc opt]# cd /root/ [root@abc ~]# ls ] anaconda-ks.cfg dir.zip index.html test.pdf.gz xxxeth0xxx 系统优化.md 123.log demo.txt etc nginx-0.1.22.tar.gz test.txt 上传与下载.md 123.zip dir eth0xxx test xxxeth0 文件管理_(高级).pdf # 静默输出(-q) [root@abc ~]# rm -rf etc [root@abc ~]# unzip -q -d /root/ /opt/etc.zip [root@abc ~]# ls -l
tar compression supports multiple compression algorithms
tar.gz gzip (most commonly used)
tar.bz2 bzip2
Use the gzip compression algorithm to compress files to a certain volume, which is beneficial to transmission. Packaging is not supported
[root@abc ~]# ls -l total 4828 -rw-r--r-- 1 root root 244977 Mar 10 12:12 index.html [root@abc ~]# gzip index.html [root@abc ~]# ls -l
[root@abc etc]# gzip -r /etc [root@abc etc]# ls
[root@abc ~]# ls -l -rw-r--r-- 1 0 0 22652 Mar 10 12:12 index.html.gz [root@abc ~]# gzip -d index.html.gz [root@abc ~]# ls -l
Use the bzip2 compression algorithm to compress files of a certain volume.
[root@abc ~]# ls -l total 4828 -rw-r--r-- 1 root root 646165 Mar 9 10:31 123.log [root@abc ~]# bzip2 123.log [root@abc ~]# ls -l total 4240 -rw-r--r-- 1 root root 0 Mar 10 12:04 ]
bzip2 decompression is for decompressing bzip2 compressed compressed packages.
[root@abc ~]# ls -l total 4240 -rw-r--r-- 1 root root 42210 Mar 9 10:31 123.log.bz2 [root@abc ~]# bzip2 -d 123.log.bz2 [root@abc ~]# ls -l
tar is actually a packaging tool and does not have a compression function, but you can use parameters to call the compression tool for decompression.
tar参数 -c : 创建压缩 -f ; 指定压缩包名称 -z : 使用gzip压缩工具进行压缩 -j : 使用bzip2压缩工具进行压缩 -J : 使用xz压缩工具进行压缩 -t : 显示压缩包内容,不解压 -v : 显示压缩过程 -P : 允许使用绝对路径进行压缩 -x : 解压 -C : 指定解压路径 -h : 打包软连接 --exclude : 排除某些文件 --exclude-from :
-c: Create a compressed package
-f: Specify the compressed package name
[root@abc ~]# tar -c -f test.tar 123.log [root@abc ~]# ls -l
-z: Specify the use of gzip compression tool for compression
[root@abc ~]# tar -c -z -f test-one.tar 123.log [root@abc ~]# ls -l total 5084 -rw-r--r-- 1 root root 85279 Mar 11 15:56 test-one.tar # 注:使用-z参数,不会自动添加.gz后缀 [root@abc ~]# tar -c -z -f anaconda.tar.gz anaconda-ks.cfg [root@abc ~]# ls -l
-j: Specify Use the bzip2 compression tool for compression
[root@abc ~]# tar -c -j -f 123-bask-one.tar 123.log [root@abc ~]# ls -l
-J: Specify the use of the xz compression tool for compression
[root@abc test-tar]# tar -c -J -f etc.tar.xz /etc/ [root@abc ~]# ls -l
-t: View the contents of the compressed package
[root@abc ~]# tar -t -f 123-bak.tar.bz2 123.log [root@abc ~]#
-v: Display the compression process of the compressed package
[root@abc ~]# tar -x -v -f etc.tar -C /opt/
-P: Allow the use of absolute paths for packaging
[root@abc ~]# tar -c -P -f 123-three.tar /etc/passwd [root@abc ~]# tar -c -f 123-three.tar /etc/passwd tar: Removing leading `/' from member names [root@abc ~]#
-x: Unzip
# tar解压是按照原来的路径进行解压 [root@abc test]# tar -x -f etc.tar # tar会自动识别压缩功能
-C: Specify the decompression path
[root@abc ~]# tar -x -f etc.tar -C /opt/ tar: Removing leading `/' from member names [root@abc ~]# cd /opt/ [root@abc opt]# ls abc23 dir dir.zip etc nginx-0.1.22.tar.gz nginx-.tar.gz xxx [root@abc opt]#
-exclude: Exclude certain files
[root@abc test-tar]# tar -c -f abc.tar ./* --exclude=abc7 --exclude=abc5 --exclude=abc1 [root@abc test-tar]# tar -t -f abc.tar ./abc2 ./abc3 ./abc4 ./abc6 ./abc8 ./abc9 [root@abc test-tar]#
–exclude-from: exclude multiple files based on a certain file list
[root@abc test-tar]# cat list.txt abc995 abc996 abc997 abc998 abc999 [root@abc test-tar]# tar -c -f abc.tar ./* --exclude-from=list.txt
-h: package soft link
[root@abc test-tar]# tar -c -h -f bin-h.tar /bin
The above is the detailed content of What is the method of linux file packaging and compression?. For more information, please follow other related articles on the PHP Chinese website!