Dans les systèmes Linux, le packaging et la compression de fichiers sont des opérations extrêmement courantes et nécessaires, et la commande tar est un outil puissant. Non seulement il peut regrouper plusieurs fichiers en un seul, mais il peut également compresser et décompresser des fichiers. Pour les débutants sous Linux, il est très important de se familiariser avec la commande tar, car elle améliorera considérablement notre efficacité de travail. Dans cet article, nous comprendrons en détail comment utiliser la commande tar, vous permettant d'apprendre facilement les techniques d'empaquetage et de compression de fichiers sous Linux.
En bref, une archive est un fichier unique qui contient une série de fichiers et/ou de répertoires. Les fichiers d'archives sont généralement utilisés pour le transfert local ou sur Internet, ou comme copie de sauvegarde d'une série de fichiers et de répertoires, vous permettant de travailler avec un seul fichier (s'il est compressé, sa taille sera inférieure à la somme de tous les fichiers). . De même, les archives sont utilisées pour le packaging d’applications logicielles. Ce fichier unique peut être facilement compressé pour le transport, tandis que les fichiers de l'archive conservent leur structure et leurs autorisations d'origine.
Nous pouvons utiliser l'outil tar pour créer, lister et extraire des fichiers dans une archive. Les archives produites avec tar sont souvent appelées « fichiers tar », « archives tar » ou « packages tar » (car tous les fichiers archivés sont combinés en un seul fichier).
Ce tutoriel vous montre comment utiliser tar pour créer, lister et extraire le contenu d'une archive. Les trois opérations utilisent deux options communes -f et -v : utilisez -f pour spécifier le nom du fichier d'archive et utilisez l'option -v ("redondant") pour que tar affiche le nom du fichier lors du traitement du fichier. Bien que l'option -v ne soit pas obligatoire, elle vous permet d'observer la progression de l'opération tar.
Dans la partie suivante de ce tutoriel, 3 sujets seront abordés : 1. Création d'un fichier d'archive ; 2. Listage du contenu du fichier d'archive ; 3. Extraction du contenu du fichier d'archive ; De plus, nous conclurons ce tutoriel en répondant à 6 questions pratiques sur la gestion des archives. Ce que vous apprenez de ce didacticiel est essentiel pour effectuer des tâches liées à la cybersécurité et aux technologies cloud.
1. Créez un fichier d'archive
Pour créer une archive à l'aide de tar, utilisez l'option -c ("create"), suivie de l'option -f pour spécifier le nom de l'archive à créer. Une pratique courante consiste à utiliser un nom avec une extension .tar, tel que my-backup.tar. Notez que toutes les commandes et paramètres utilisés dans le reste de cet article sont en minuscules, sauf indication contraire. N'oubliez pas que lorsque vous saisissez les commandes de cet article dans votre terminal, vous n'avez pas besoin de saisir l'invite $ au début de chaque ligne de commande.
Entrez le nom du fichier à archiver en paramètre ; si vous souhaitez créer une archive contenant tous les fichiers et leurs sous-répertoires, indiquez le nom du répertoire en paramètre.
Pour archiver le contenu du répertoire du projet, saisissez :
$ tar -cvf project.tar project
Cette commande créera un fichier d'archive nommé project.tar, contenant tout le contenu du répertoire du projet, tandis que le répertoire du projet d'origine restera inchangé.
Les archives peuvent être compressées à l'aide de l'option -z, qui produit le même résultat que la création d'une archive non compressée puis sa compression avec gzip, mais cela élimine l'étape supplémentaire.
Pour créer un package compressé project.tar.gz à partir du répertoire du projet, saisissez :
$ tar -zcvf project.tar.gz project
Cette commande créera un package compressé project.tar.gz contenant tout le contenu du répertoire du projet, tandis que le répertoire du projet d'origine restera inchangé.
Remarque : lorsque vous utilisez l'option -z, vous devez utiliser l'extension .tar.gz au lieu de l'extension .tar, qui indique une compression. Même si cela n’est pas obligatoire, c’est une bonne pratique.
gzip n'est pas la seule forme de compression, il existe également bzip2 et xz. Lorsque nous voyons un fichier avec une extension .xz, nous savons que le fichier est compressé à l'aide de xz et qu'un fichier avec une extension .bz2 est compressé à l'aide de bzip2. Comme bzip2 n'est plus maintenu, nous allons nous en éloigner et nous concentrer sur xz. Lorsque vous utilisez la compression xz, cela prend plus de temps. Cependant, l'attente en vaut généralement la peine, car la compression est bien meilleure, ce qui signifie que l'archive est généralement plus petite qu'avec d'autres formes de compression. Mieux encore, il n'y a pas beaucoup de différence dans la décompression ou l'extraction de fichiers entre les différentes formes de compression. Ci-dessous, nous verrons un exemple de la façon d'utiliser xz lors de la compression d'un fichier à l'aide de tar :
$ tar -Jcvf project.tar.xz project
Nous convertissons simplement l'option -z de gzip en -J majuscule de xz. Voici quelques résultats montrant la différence entre les formes compressées :
Comme vous pouvez le voir, xz a le temps de compression le plus long. Cependant, c'est lui qui fait le meilleur travail en matière de réduction de la taille des fichiers, cela vaut donc la peine d'attendre. Plus le fichier est volumineux, meilleure est la compression.
2. Répertoriez le contenu des fichiers archivés
Pour lister le contenu d'une archive tar sans l'extraire, utilisez l'option -t.
Pour lister le contenu de project.tar, tapez :
$ 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命令来实现文件的打包、压缩和解压缩操作。在日常工作中,熟练掌握这些技巧能够使我们更加高效地管理文件和数据,节约时间和资源。希望本文能够对您有所帮助,也希望大家能够通过实践不断提高自己的技能水平。
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!