Die Reduzierung der Dateigröße hat zwei offensichtliche Vorteile: Zum einen kann dadurch der Speicherplatz reduziert werden, zum anderen kann die Übertragungszeit bei der Übertragung von Dateien über das Netzwerk verkürzt werden. gzip ist ein in Linux-Systemen häufig verwendeter Befehl zum Komprimieren und Dekomprimieren von Dateien. Er ist bequem und einfach zu verwenden. Gzip kann nicht nur zum Komprimieren großer, selten verwendeter Dateien verwendet werden, um Speicherplatz zu sparen, sondern kann auch zusammen mit dem Befehl tar verwendet werden, um ein beliebtes komprimiertes Dateiformat im Linux-Betriebssystem zu bilden. Laut Statistik hat der Befehl gzip eine Komprimierungsrate von 60 % bis 70 % für Textdateien.
1. zip
zip -r myfile.zip ./*
Komprimieren Sie alle Dateien und Ordner im aktuellen Verzeichnis in die Datei myfile.zip , -r bedeutet, alle Dateien im Unterverzeichnis rekursiv zu komprimieren
zip -d myfile.zip smart.txt
Die Datei smart.txt in der komprimierten Datei löschen
Fügen Sie die Datei rpm_info.txt zu myfile.zip in der komprimierten Datei hinzu
zip -r filename.zip filesdir
In diesem Beispiel stellt Dateiname.zip die von Ihnen erstellte Datei dar und Dateiverzeichnis stellt das Verzeichnis dar, in dem Sie die neue ZIP-Datei ablegen möchten. Die Option -r gibt an, dass Sie alle im Verzeichnis filesdir enthaltenen Dateien rekursiv einschließen möchten.
zip -r Dateiname.zip Datei1 Datei2 Datei3 /usr/work/school
Der obige Befehl fügt Datei1, Datei2, Datei3 und /usr/work/school ein Der Inhalt des Verzeichnisses (vorausgesetzt, es existiert) wird gezippt und in Dateiname.zip abgelegt.
2. entpacken
unzip -o -d /home/sunny myfile.zip
Extrahieren Sie die Datei myfile.zip nach / home/sunny/-o: Überschreibe die Datei ohne Aufforderung;
-d:-d /home/sunny gibt an, die Datei in das Verzeichnis /home/sunny zu dekomprimieren;
abc?.zip entpacken
Ich habe abc1.zip, abc2.zip und abc3.zip im aktuellen Verzeichnis, das ich zusammen dekomprimieren möchte.
? wenn * zur Darstellung einer beliebigen Anzahl von Zeichen verwendet wird.
unzip -v large.zip
Ich habe eine große komprimierte Datei „large.zip“, ich möchte sie nicht entpacken, sondern nur sehen, was drin ist it
unzip -t large.zip
Überprüfen Sie, ob die komprimierte Datei korrekt heruntergeladen wurde
unzip -j music .zip
Ich habe die Option -v verwendet und festgestellt, dass die komprimierte Datei „music.zip“ viele Verzeichnisse und Unterverzeichnisse enthält und die Unterverzeichnisse tatsächlich Song-MP3-Dateien sind, die ich als Erstes herunterladen möchte. Ebenenverzeichnis statt Verzeichnisse Schicht für Schicht erstellen
3. tar
Wir wissen, dass es unter Windows nur zwei am häufigsten komprimierte Dateien gibt: Eine davon ist ,zip und die andere ist .rap. Aber Linux ist anders. Es gibt viele komprimierte Dateinamen wie .gz, .tar.gz, tgz, bz2, .Z, .tar usw. Darüber hinaus können .zip und .rar unter Windows auch unter Linux verwendet werden. tar selbst verfügt nicht über Komprimierungsfunktionen. Dies wird durch Aufrufen der Komprimierungsfunktion implementiert
Die erforderlichen Parameter lauten wie folgt:
-A Fügen Sie eine neue komprimierte Datei zur vorhandenen Komprimierung hinzu
-B Legen Sie die Blockgröße fest
-c Eine neue komprimierte Datei erstellen
-d Unterschiede zwischen Dateien aufzeichnen
-r Dateien zu bereits komprimierten Dateien hinzufügen
-u Geänderte hinzufügen und vorhandene Dateien Einige Dateien zu vorhandenen komprimierten Dateien
-x Dateien aus komprimierten Dateien extrahieren
-t Den Inhalt komprimierter Dateien anzeigen
-z Unterstützt gzip-dekomprimierte Dateien
-j Unterstützt bzip2-Dekomprimierungsdateien
-Z Unterstützt komprimierte Dekomprimierungsdateien
-v Zeigt den Vorgangsprozess an
-l Einstellungen für Dateisystemgrenzen
-k Behält die Originaldatei ohne Überschreiben
-m Behält die Datei ohne Überschreiben
-W Bestätigt die Richtigkeit der komprimierten Datei
Beispiel 1: Alle Dateien in ein TAR-Paket packen
Befehl:
Ausgabe:tar -cvf log.tar log2012.log tar -zcvf log.tar.gz log2012.log tar -jcvf log.tar.bz2 log2012.logAnleitung:
[root@localhost test]# ls -al log2012.log ---xrw-r-- 1 root root 302108 11-13 06:03 log2012.log [root@localhost test]# tar -cvf log.tar log2012.log log2012.log [root@localhost test]# tar -zcvf log.tar.gz log2012.log log2012.log [root@localhost test]# tar -jcvf log.tar.bz2 log2012.log log2012.log [root@localhost test]# ls -al *.tar* -rw-r--r-- 1 root root 307200 11-29 17:54 log.tar -rw-r--r-- 1 root root 1413 11-29 17:55 log.tar.bz2 -rw-r--r-- 1 root root 1413 11-29 17:54 log.tar.gz
tar -cvf log. tar log2012.log ist nur gepackt, nicht komprimiert!
tar -zcvf log.tar.gz log2012.log Komprimieren Sie es nach dem Packen mit gzip
tar -jcvf log.tar.bz2 log2012.log Komprimieren Sie es nach dem Packen mit bzip2
Der Dateiname nach dem Parameter f wird von Ihnen selbst gewählt und wir sind es gewohnt, .tar als Identifikation zu verwenden. Wenn der z-Parameter hinzugefügt wird, stellt .tar.gz oder .tgz das gzip-komprimierte TAR-Paket dar; wenn der j-Parameter hinzugefügt wird, wird .tar.bz2 als TAR-Paketname verwendet.
Beispiel 2: Überprüfen Sie, welche Dateien sich im obigen TAR-Paket befinden
Befehl:
tar -ztvf log.tar.gz
输出:
[root@localhost test]# tar -ztvf log.tar.gz
---xrw-r-- root/root 302108 2012-11-13 06:03:25 log2012.log
说明:
由于我们使用 gzip 压缩的log.tar.gz,所以要查阅log.tar.gz包内的文件时,就得要加上 z 这个参数了。
实例3:将tar 包解压缩
命令:
tar -zxvf /opt/soft/test/log.tar.gz
输出:
[root@localhost test3]# ll
总计 0[root@localhost test3]# tar -zxvf /opt/soft/test/log.tar.gz
log2012.log
[root@localhost test3]# ls
log2012.log
[root@localhost test3]#
说明:
在预设的情况下,我们可以将压缩档在任何地方解开的
实例4:只将 /tar 内的 部分文件解压出来
命令:
tar -zxvf /opt/soft/test/log30.tar.gz log2013.log
输出:
[root@localhost test]# tar -zcvf log30.tar.gz log2012.log log2013.log log2012.log log2013.log [root@localhost test]# ls -al log30.tar.gz -rw-r--r-- 1 root root 1512 11-30 08:19 log30.tar.gz [root@localhost test]# tar -zxvf log30.tar.gz log2013.log log2013.log [root@localhost test]# ll -rw-r--r-- 1 root root 1512 11-30 08:19 log30.tar.gz [root@localhost test]# cd test3 [root@localhost test3]# tar -zxvf /opt/soft/test/log30.tar.gz log2013.log log2013.log [root@localhost test3]# ll 总计 4 -rw-r--r-- 1 root root 61 11-13 06:03 log2013.log [root@localhost test3]#
说明:
我可以透过 tar -ztvf 来查阅 tar 包内的文件名称,如果单只要一个文件,就可以透过这个方式来解压部分文件!
实例5:文件备份下来,并且保存其权限
命令:
tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log
输出:
[root@localhost test]# ll 总计 0 -rw-r--r-- 1 root root 0 11-13 06:03 log2014.log -rw-r--r-- 1 root root 0 11-13 06:06 log2015.log -rw-r--r-- 1 root root 0 11-16 14:41 log2016.log [root@localhost test]# tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log log2014.log log2015.log log2016.log [root@localhost test]# cd test6 [root@localhost test6]# ll [root@localhost test6]# tar -zxvpf /opt/soft/test/log31.tar.gz log2014.log log2015.log log2016.log [root@localhost test6]# ll 总计 0 -rw-r--r-- 1 root root 0 11-13 06:03 log2014.log -rw-r--r-- 1 root root 0 11-13 06:06 log2015.log -rw-r--r-- 1 root root 0 11-16 14:41 log2016.log [root@localhost test6]#
说明:
这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时
实例6:在 文件夹当中,比某个日期新的文件才备份
命令:
tar -N "2012/11/13" -zcvf log17.tar.gz test
输出:
[root@localhost soft]# tar -N "2012/11/13" -zcvf log17.tar.gz test tar: Treating date `2012/11/13' as 2012-11-13 00:00:00 + 0 nanoseconds test/test/log31.tar.gz test/log2014.log test/linklog.log test/log2015.log test/log2013.log test/log2012.log test/log2017.log test/log2016.log test/log30.tar.gz test/log.tar test/log.tar.bz2 test/log.tar.gz
说明:
实例7:备份文件夹内容是排除部分文件
命令:
tar --exclude scf/service -zcvf scf.tar.gz scf/*
输出:
[root@localhost test]# tree scf
scf
|-- bin
|-- doc
|-- lib
`-- service
`-- deploy
|-- info
`-- product
7 directories, 0 files
[root@localhost test]# tar --exclude scf/service -zcvf scf.tar.gz scf/*
scf/bin/
scf/doc/
scf/lib/
[root@localhost test]#
更多Linux常用指令---tar | zip (解压缩)相关文章请关注PHP中文网!