Maison >Opération et maintenance >exploitation et maintenance Linux >Quelle est la méthode de packaging et de compression des fichiers Linux ?

Quelle est la méthode de packaging et de compression des fichiers Linux ?

WBOY
WBOYavant
2023-05-17 16:56:472716parcourir

Emballage et compression

Combinez des fichiers ou des dossiers dans un package, puis compressez les données via un algorithme de compression pour réduire la taille du package et faciliter la transmission réseau.

windows:
  zip
  rar

linux:
  zip
  tar
  gz
  bz2
  tar.gz
  tar.bz2

压缩算法:
  gzip
  bzip2

zip

est un outil d'empaquetage et de compression couramment utilisé sous Windows et Linux. L'algorithme de compression pris en charge est zip.

zip工具需要安装
  yum install zip

zip compresse un fichier

# 格式
  zip [参数] 压缩包名称  文件路径

[root@abc ~]# zip 123.zip 123.log 
  adding: 123.log (deflated 87%)
[root@abc ~]# ls -l

zip compresse un dossier

# 需要一个-r参数去递归压缩文件夹下的所有内容
[root@abc ~]# zip -r dir.zip dir/
  adding: dir/ (stored 0%)
  adding: dir/one/ (stored 0%)
  adding: dir/123.log (deflated 87%)

sortie silencieuse de zip

# -q:参数就是不输出任何打包信息
[root@abc opt]# zip -r -q etc.zip /etc/
[root@abc opt]# ls -l

commande de décompression zip (décompresser)

# 格式
  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

tar la compression prend en charge plusieurs algorithmes de compression

tar .gz gzip ( le plus couramment utilisé)

tar.bz2 bzip2

gzip

Utilisez l'algorithme de compression gzip pour compresser les fichiers à un certain volume, ce qui est bénéfique pour la transmission. L'emballage n'est pas pris en charge

[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
gzip compresse un répertoire
[root@abc etc]# gzip -r /etc
[root@abc etc]# ls
.

gzip décompresse (-d)

[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

bzip2

Utilisez l'algorithme de compression bzip2 pour compresser des fichiers d'un 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 ]

Décompression bzip2 (-d)

La décompression bzip2 sert à décompresser les packages compressés bzip2.

[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

tar est en fait un outil d'empaquetage qui n'a pas de fonction de compression, mais vous pouvez utiliser des paramètres pour appeler l'outil de compression pour la décompression.

tar参数
  -c : 创建压缩
  -f ; 指定压缩包名称
  -z : 使用gzip压缩工具进行压缩
  -j : 使用bzip2压缩工具进行压缩
  -J : 使用xz压缩工具进行压缩
  -t : 显示压缩包内容,不解压
  -v : 显示压缩过程
  -P : 允许使用绝对路径进行压缩
  -x : 解压
  -C : 指定解压路径
  -h : 打包软连接
  --exclude : 排除某些文件
  --exclude-from :
Parameters
  • -c : Créer un package compressé

  • -f : Spécifier le nom du package compressé

[root@abc ~]# tar -c -f test.tar 123.log 
[root@abc ~]# ls -l
  • -z : Spécifier l'utilisation de l'outil de compression gzip pour la 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 : Spécifiez l'utilisation de l'outil de compression bzip2 pour la compression

[root@abc ~]# tar -c -j -f 123-bask-one.tar 123.log 
[root@abc ~]# ls -l
  • -J : Spécifiez l'utilisation de l'outil de compression xz pour la compression

[root@abc test-tar]# tar -c -J  -f etc.tar.xz /etc/
[root@abc ~]# ls -l
  • -t : Afficher le contenu du package compressé

[root@abc ~]# tar -t -f 123-bak.tar.bz2 
123.log
[root@abc ~]#
  • -v : Afficher le processus de compression du package compressé

[root@abc ~]# tar -x -v -f etc.tar -C /opt/
  • -P : Autoriser l'utilisation de chemins absolus pour l'empaquetage

[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 : Décompresser

# tar解压是按照原来的路径进行解压
[root@abc test]# tar -x -f etc.tar 

# tar会自动识别压缩功能
  • -C : Spécifiez le chemin de décompression

[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]#
  • –exclure : exclure certains fichiers

[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]#
  • –exclure-de : exclure plusieurs fichiers en fonction d'une certaine liste de fichiers

[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 : Pack de liens souples

[root@abc test-tar]# tar -c -h -f bin-h.tar /bin

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer