Heim  >  Artikel  >  php教程  >  Gängige Linux-Befehle---tar |. zip (Dekomprimierung)

Gängige Linux-Befehle---tar |. zip (Dekomprimierung)

高洛峰
高洛峰Original
2016-12-19 14:23:371498Durchsuche

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


zip -m myfile.zip ./rpm_info.txt

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.log

Anleitung:
[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中文网!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn