In Linux-Systemen sind Dateipaketierung und -komprimierung äußerst häufige und notwendige Vorgänge, und der Befehl tar ist ein leistungsstarkes Werkzeug. Es kann nicht nur mehrere Dateien in eine packen, sondern auch Dateien komprimieren und dekomprimieren. Für Linux-Neulinge ist es sehr wichtig, mit dem Befehl tar vertraut zu sein, da er unsere Arbeitseffizienz erheblich verbessern wird. In diesem Artikel erklären wir Ihnen umfassend, wie Sie den Befehl tar verwenden, sodass Sie die Techniken zum Packen und Komprimieren von Dateien unter Linux leicht erlernen können.
Kurz gesagt ist ein Archiv eine einzelne Datei, die eine Reihe von Dateien und/oder Verzeichnissen enthält. Archivdateien werden normalerweise für die lokale Übertragung oder über das Internet oder als Sicherungskopie einer Reihe von Dateien und Verzeichnissen verwendet, sodass Sie mit einer einzelnen Datei arbeiten können (die, wenn sie komprimiert ist, kleiner als die Summe aller Dateien ist). . Ebenso werden Archive für die Verpackung von Softwareanwendungen verwendet. Diese einzelne Datei kann für den Transport einfach komprimiert werden, während die Dateien im Archiv ihre ursprüngliche Struktur und Berechtigungen behalten.
Mit dem tar-Tool können wir Dateien in einem Archiv erstellen, auflisten und extrahieren. Mit tar erstellte Archive werden oft als „tar-Dateien“, „tar-Archive“ oder „tar-Pakete“ bezeichnet (da alle archivierten Dateien in einer Datei zusammengefasst sind).
Dieses Tutorial zeigt Ihnen, wie Sie mit tar den Inhalt eines Archivs erstellen, auflisten und extrahieren. Alle drei Vorgänge verwenden zwei gemeinsame Optionen -f und -v: Verwenden Sie -f, um den Namen der Archivdatei anzugeben, und verwenden Sie die Option -v („redundant“), um zu veranlassen, dass tar bei der Verarbeitung der Datei den Dateinamen ausgibt. Obwohl die Option -v nicht erforderlich ist, können Sie damit den Fortschritt des TAR-Vorgangs beobachten.
Im folgenden Teil dieses Tutorials werden drei Themen behandelt: 1. Erstellen einer Archivdatei; 2. Auflisten des Inhalts der Archivdatei; 3. Extrahieren des Inhalts der Archivdatei; Zusätzlich schließen wir dieses Tutorial mit der Beantwortung von 6 praktischen Fragen zur Archivverwaltung ab. Was Sie in diesem Tutorial lernen, ist für die Ausführung von Aufgaben im Zusammenhang mit Cybersicherheit und Cloud-Technologien von entscheidender Bedeutung.
1. Erstellen Sie eine Archivdatei
Um ein Archiv mit tar zu erstellen, verwenden Sie die Option -c („create“), gefolgt von der Option -f, um den Namen des zu erstellenden Archivs anzugeben. Üblicherweise wird ein Name mit der Erweiterung „.tar“ verwendet, beispielsweise „my-backup.tar“. Beachten Sie, dass alle im Rest dieses Artikels verwendeten Befehle und Parameter in Kleinbuchstaben geschrieben sind, sofern nicht ausdrücklich anders angegeben. Denken Sie daran, dass Sie bei der Eingabe der Befehle für diesen Artikel in Ihr Terminal nicht die $-Eingabeaufforderung am Anfang jeder Befehlszeile eingeben müssen.
Geben Sie den Namen der zu archivierenden Datei als Parameter ein; wenn Sie ein Archiv erstellen möchten, das alle Dateien und ihre Unterverzeichnisse enthält, geben Sie den Verzeichnisnamen als Parameter an.
Um den Inhalt des Projektverzeichnisses zu archivieren, geben Sie Folgendes ein:
$ tar -cvf project.tar project
Dieser Befehl erstellt eine Archivdatei mit dem Namen project.tar, die den gesamten Inhalt des Projektverzeichnisses enthält, während das ursprüngliche Projektverzeichnis unverändert bleibt.
Archive können mit der Option -z komprimiert werden, die die gleiche Ausgabe erzeugt wie das Erstellen eines unkomprimierten Archivs und das anschließende Komprimieren mit gzip, aber der zusätzliche Schritt entfällt.
Um ein komprimiertes project.tar.gz-Paket aus dem Projektverzeichnis zu erstellen, geben Sie Folgendes ein:
$ tar -zcvf project.tar.gz project
Dieser Befehl erstellt ein komprimiertes project.tar.gz-Paket, das den gesamten Inhalt des Projektverzeichnisses enthält, während das ursprüngliche Projektverzeichnis unverändert bleibt.
Hinweis: Wenn Sie die Option -z verwenden, sollten Sie die Erweiterung .tar.gz anstelle der Erweiterung .tar verwenden, die auf Komprimierung hinweist. Obwohl dies nicht erforderlich ist, handelt es sich um eine gute Vorgehensweise.
gzip ist nicht die einzige Komprimierungsform, es gibt auch bzip2 und xz. Wenn wir eine Datei mit der Erweiterung .xz sehen, wissen wir, dass die Datei mit xz komprimiert wurde und eine Datei mit der Erweiterung .bz2 mit bzip2 komprimiert wurde. Da bzip2 nicht mehr gepflegt wird, werden wir davon Abstand nehmen und uns auf xz konzentrieren. Bei Verwendung der xz-Komprimierung dauert es länger. Das Warten lohnt sich jedoch in der Regel, da die Komprimierung viel besser ist und das Archiv daher in der Regel kleiner ist als bei anderen Komprimierungsformen. Noch besser ist, dass es beim Dekomprimieren oder Extrahieren von Dateien zwischen verschiedenen Komprimierungsformen keinen großen Unterschied gibt. Unten sehen wir ein Beispiel für die Verwendung von xz beim Komprimieren einer Datei mit tar:
$ tar -Jcvf project.tar.xz project
Wir konvertieren einfach die Option -z von gzip in den Großbuchstaben -J von xz. Hier ist eine Ausgabe, die den Unterschied zwischen den komprimierten Formen zeigt:
Wie Sie sehen, hat xz die längste Komprimierungszeit. Allerdings reduziert es die Dateigröße am besten, das Warten lohnt sich also. Je größer die Datei, desto besser ist die Komprimierung.
2. Listen Sie den Inhalt archivierter Dateien auf
Um den Inhalt eines TAR-Archivs aufzulisten, ohne es zu extrahieren, verwenden Sie die Option -t.
Um den Inhalt von project.tar aufzulisten, geben Sie Folgendes ein:
$ tar -tvf project.tar
这个命令列出了 project.tar 归档的内容。-v 和 -t 选项一起使用会输出每个文件的权限和修改时间,以及文件名。这与 ls 命令使用 -l 选项时使用的格式相同。
要列出 project.tar.gz 压缩包的内容,输入:
$ tar -tzvf project.tar.gz
3、从归档中提取内容
要提取(解压)tar 归档文件中的内容,使用 -x(“提取”)选项。
要提取 project.tar 归档的内容,输入:
$ tar -xvf project.tar
这个命令会将 project.tar 归档的内容提取到当前目录。
如果一个归档文件被压缩,通常来说它的扩展名为 .tar.gz 或 .tgz,请包括 “-z” 选项。
要提取 project.tar.gz 压缩包的内容,输入:
$ tar -zxvf project.tar.gz
注意: 如果当前目录中有文件或子目录与归档文件中的内容同名,那么在提取归档文件时,这些文件或子目录将被覆盖。如果你不知道归档中包含哪些文件,请考虑先查看归档文件的内容。
在提取归档内容之前列出其内容的另一个原因是,确定归档中的内容是否包含在目录中。如果没有,而当前目录中包含许多不相关的文件,那么你可能将它们与归档中提取的文件混淆。
要将文件提取到它们自己的目录中,新建一个目录,将归档文件移到该目录,然后你就可以在新目录中提取文件。
FAQ
现在我们已经学习了如何创建归档文件并列出和提取其内容,接下来我们可以继续讨论 Linux 专业人员经常被问到的 9 个实用问题。
可以在不解压缩的情况下添加内容到压缩包中吗?
很不幸,一旦文件将被压缩,就无法向其添加内容。你需要解压缩或提取其内容,然后编辑或添加内容,最后再次压缩文件。如果文件很小,这个过程不会花费很长时间,否则请等待一会。
可以在不解压缩的情况下删除归档文件中的内容吗?
这取决压缩时使用的 tar 版本。较新版本的 tar 支持 -delete 选项。
例如,假设归档文件中有 file1 和 file2,可以使用以下命令将它们从 file.tar 中删除:
$ tar -vf file.tar –delete file1 file2
删除目录 dir1:
$ tar -f file.tar –delete dir1/*
压缩和归档之间有什么区别?
查看归档和压缩之间差异最简单的方法是查看其解压大小。归档文件时,会将多个文件合并为一个。所以,如果我们归档 10 个 100kb 文件,则最终会得到一个 100kb 大小的文件。而如果压缩这些文件,则最终可能得到一个只有几 kb 或接近 100kb 的文件。
如何压缩归档文件?
如上所说,你可以使用带有 cvf 选项的 tar 命令来创建和归档文件。要压缩归档文件,有两个选择:通过压缩程序(例如 gzip)运行归档文件,或在使用 tar 命令时使用压缩选项。最常见的压缩标志 -z 表示 gzip,-j 表示 bzip,-J 表示 xz。例如:
$ gzip file.tar
或者,我们可以在使用 tar 命令时使用压缩标志,以下命令使用 gzip 标志 z:
$ tar -cvzf file.tar /some/directory
如何一次创建多个目录和/或文件的归档?
一次要归档多个文件,这种情况并不少见。一次归档多个文件和目录并不像你想的那么难,你只需要提供多个文件或目录作为 tar 的参数即可:
tar -cvzf file.tar file1 file2 file3
创建归档时如何跳过目录和/或文件?
你可能会遇到这样的情况:要归档一个目录或文件,但不是所有文件,这种情况下可以使用 –exclude 选项:
$ tar –exclude ‘/some/directory’ -cvf file.tar /home/user
在示例中,/home/user 目录中除了 /some/directory 之外都将被归档。将 –exclude 选项放在源和目标之前,并用单引号将要排除的文件或目录引起来,这一点很重要。
本文详细介绍了tar命令的使用方法和参数。通过学习,我们已经掌握了如何使用tar命令来实现文件的打包、压缩和解压缩操作。在日常工作中,熟练掌握这些技巧能够使我们更加高效地管理文件和数据,节约时间和资源。希望本文能够对您有所帮助,也希望大家能够通过实践不断提高自己的技能水平。
Das obige ist der detaillierte Inhalt vonErlernen Sie ganz einfach das Packen und Komprimieren von Dateien unter Linux – umfassendes Verständnis des Befehls tar. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!