Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah kaedah pembungkusan dan pemampatan fail linux?

Apakah kaedah pembungkusan dan pemampatan fail linux?

WBOY
WBOYke hadapan
2023-05-17 16:56:472672semak imbas

Pembungkusan dan Pemampatan

Gabungkan fail atau folder ke dalam pakej, dan kemudian mampatkan data melalui algoritma pemampatan untuk mengurangkan saiz pakej dan memudahkan penghantaran rangkaian.

windows:
  zip
  rar

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

压缩算法:
  gzip
  bzip2

zip

ialah alat pembungkusan dan pemampatan yang biasa digunakan dalam Windows dan Linux Algoritma pemampatan yang disokong ialah zip.

zip工具需要安装
  yum install zip

zip memampatkan fail

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

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

zip memampatkan folder

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

output senyap zip

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

perintah penyahmampatan zip (nyahzip)

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

mampatan tar menyokong berbilang algoritma mampatan

tar.gz gzip (paling biasa digunakan)

tar.bz2 bzip2

gzip

Gunakan algoritma pemampatan gzip untuk memampatkan fail ke volum tertentu, yang bermanfaat untuk penghantaran Pembungkusan tidak disokong

[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. memampatkan direktori
[root@abc etc]# gzip -r /etc
[root@abc etc]# ls

penyahmampatan gzip (-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

Gunakan algoritma mampatan bzip2 untuk memampatkan fail dengan volum tertentu.

[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 ]

penyahmampatan bzip2 (-d)

penyahmampatan bzip2 adalah untuk menyahmampat pakej termampat 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 sebenarnya adalah alat pembungkusan yang tidak mempunyai fungsi mampatan, tetapi anda boleh menggunakan parameter untuk memanggil alat mampatan untuk penyahmampatan.

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

  • -f: Tentukan nama pakej termampat

[root@abc ~]# tar -c -f test.tar 123.log 
[root@abc ~]# ls -l
  • -z: Nyatakan penggunaan alat pemampatan gzip untuk pemampatan

rreee
  • -j: Nyatakan Gunakan alat pemampatan bzip2 untuk pemampatan

[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: Tentukan untuk menggunakan alat pemampatan xz untuk pemampatan

rreee
  • -t: Lihat kandungan pakej termampat

[root@abc ~]# tar -c -j -f 123-bask-one.tar 123.log 
[root@abc ~]# ls -l
  • -v: Paparkan proses mampatan pakej termampat

[root@abc test-tar]# tar -c -J  -f etc.tar.xz /etc/
[root@abc ~]# ls -l
  • -P: Benarkan penggunaan laluan mutlak untuk pembungkusan

[root@abc ~]# tar -t -f 123-bak.tar.bz2 
123.log
[root@abc ~]#
  • -x : Nyahmampat

[root@abc ~]# tar -x -v -f etc.tar -C /opt/
  • -C: Tentukan laluan penyahmampatan

[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 ~]#
  • –kecualikan: Kecualikan fail tertentu

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

# tar会自动识别压缩功能
  • –kecualikan-daripada: Kecualikan berbilang fail berdasarkan senarai fail

[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]#
  • -h: Pek pautan lembut

rreee

Atas ialah kandungan terperinci Apakah kaedah pembungkusan dan pemampatan fail linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam