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
Libérer: 2023-05-17 16:56:47
avant
2717 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

zip compresse un fichier

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

[root@abc ~]# zip 123.zip 123.log 
  adding: 123.log (deflated 87%)
[root@abc ~]# ls -l
Copier après la connexion

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%)
Copier après la connexion

sortie silencieuse de zip

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

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
Copier après la connexion

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

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
Copier après la connexion

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 ]
Copier après la connexion

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
Copier après la connexion

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 :
Copier après la connexion
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
Copier après la connexion
  • -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
Copier après la connexion
  • -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
Copier après la connexion
  • -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
Copier après la connexion
  • -t : Afficher le contenu du package compressé

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

[root@abc ~]# tar -x -v -f etc.tar -C /opt/
Copier après la connexion
  • -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 ~]#
Copier après la connexion
  • -x : Décompresser

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

# tar会自动识别压缩功能
Copier après la connexion
  • -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]#
Copier après la connexion
  • –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]#
Copier après la connexion
  • –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
Copier après la connexion
  • -h : Pack de liens souples

[root@abc test-tar]# tar -c -h -f bin-h.tar /bin
Copier après la connexion

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal