Linux システムでは、ファイルのパッケージ化と圧縮は非常に一般的で必要な操作であり、tar コマンドは強力なツールです。複数のファイルを 1 つにパックするだけでなく、ファイルの圧縮と解凍も可能です。 Linux の初心者にとって、tar コマンドに慣れることは作業効率を大幅に向上させるため非常に重要です。この記事では、Linux でのファイルのパッケージ化と圧縮のテクニックを簡単に学べるように、tar コマンドの使用方法を完全に理解します。
つまり、アーカイブとは、一連のファイルやディレクトリが含まれる単一のファイルです。アーカイブ ファイルは通常、ローカルまたはインターネット経由での転送、または一連のファイルやディレクトリのバックアップ コピーとして使用され、単一のファイルを操作できるようになります (圧縮されている場合、そのサイズはすべてのファイルの合計より小さくなります)。 。同様に、アーカイブはソフトウェア アプリケーションのパッケージ化に使用されます。この 1 つのファイルは、転送用に簡単に圧縮できますが、アーカイブ内のファイルは元の構造と権限を保持します。
tar ツールを使用して、アーカイブ内のファイルを作成、一覧表示、抽出できます。 tar で作成されたアーカイブは、多くの場合、「tar ファイル」、「tar アーカイブ」、または「tar パッケージ」と呼ばれます (すべてのアーカイブ ファイルが 1 つのファイルに結合されるため)。
このチュートリアルでは、tar を使用してアーカイブの内容を作成、一覧表示、抽出する方法を説明します。 3 つの操作はすべて、2 つの共通オプション -f および -v を使用します。 -f を使用してアーカイブ ファイルの名前を指定し、-v (「冗長」) オプションを使用して、ファイルの処理時に tar にファイル名を出力させます。 -v オプションは必須ではありませんが、tar 操作の進行状況を観察できます。
このチュートリアルの以降の部分では、1. アーカイブ ファイルの作成、2. アーカイブ ファイルの内容の一覧表示、3. アーカイブ ファイルの内容の抽出の 3 つのトピックについて説明します。さらに、アーカイブ管理に関する 6 つの実践的な質問に答えて、このチュートリアルを終了します。このチュートリアルから学ぶことは、サイバーセキュリティとクラウド テクノロジーに関連するタスクを実行するために重要です。
1. アーカイブ ファイルを作成します
tar を使用してアーカイブを作成するには、-c ("create") オプションを使用し、その後に -f オプションを使用して、作成するアーカイブの名前を指定します。一般的には、my-backup.tar など、.tar 拡張子が付いた名前を使用します。特に明記されていない限り、この記事の残りの部分で使用されるすべてのコマンドとパラメータは小文字であることに注意してください。この記事のコマンドをターミナルに入力するときに、各コマンド ラインの先頭に $ プロンプトを入力する必要がないことに注意してください。
アーカイブするファイルの名前をパラメータとして入力します。すべてのファイルとそのサブディレクトリを含むアーカイブ ファイルを作成する場合は、ディレクトリ名をパラメータとして指定します。
プロジェクト ディレクトリの内容をアーカイブするには、次のように入力します:
リーリーこのコマンドは、プロジェクト ディレクトリのすべての内容を含む project.tar という名前のアーカイブ ファイルを作成しますが、元のディレクトリ プロジェクトは変更されません。
-z オプションを使用してアーカイブを圧縮すると、非圧縮アーカイブを作成して gzip で圧縮した場合と同じ出力が生成されますが、余分な手順が不要になります。
プロジェクト ディレクトリから project.tar.gz 圧縮パッケージを作成するには、次のように入力します:
リーリーこのコマンドは、プロジェクト ディレクトリのすべての内容を含む project.tar.gz 圧縮パッケージを作成しますが、元のプロジェクト ディレクトリは変更されません。
注: -z オプションを使用する場合は、圧縮を示すために .tar 拡張子の代わりに .tar.gz 拡張子を使用する必要があります。必須ではありませんが、これは良い習慣です。
gzip が唯一の圧縮形式ではなく、bzip2 や xz もあります。拡張子が .xz のファイルを見ると、そのファイルは xz を使用して圧縮されており、拡張子が .bz2 のファイルは bzip2 を使用して圧縮されていることがわかります。 bzip2 は保守されなくなったため、bzip2 から離れて xz に焦点を当てます。 xz 圧縮を使用すると、さらに時間がかかります。ただし、圧縮がはるかに優れているため、通常は待つ価値があります。つまり、アーカイブは通常、他の形式の圧縮よりも小さくなります。さらに良いことに、異なる圧縮形式間でファイルの解凍または抽出に大きな違いはありません。以下に、tar を使用してファイルを圧縮するときに xz を使用する方法の例を示します。 リーリー
gzip の -z オプションを xz の大文字の -J に変換するだけです。以下は、圧縮形式の違いを示す出力です:
2. アーカイブ ファイルの内容を一覧表示します
tar アーカイブを解凍せずに内容を一覧表示するには、-t オプションを使用します。project.tar の内容を一覧表示するには、次のように入力します:
$ 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命令来实现文件的打包、压缩和解压缩操作。在日常工作中,熟练掌握这些技巧能够使我们更加高效地管理文件和数据,节约时间和资源。希望本文能够对您有所帮助,也希望大家能够通过实践不断提高自己的技能水平。
以上がLinux でのファイルのパッケージ化と圧縮を簡単に学習 - tar コマンドの包括的な理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。