Linuxでアーカイブファイルを作成および管理する方法

マットザンドとケビンダウンズ

一言で言えば、アーカイブは他のファイルやディレクトリのコレクションを含む単一のファイルです。アーカイブファイルは通常、転送(ローカルまたはインターネット経由)に使用されるか、ファイルとディレクトリのコレクションのバックアップコピーを作成して、1つのファイルのみを操作できるようにします(圧縮されている場合は、すべての合計よりもサイズが小さくなります)その中のファイル)多くの代わりに。同様に、アーカイブはソフトウェアアプリケーションのパッケージ化に使用されます。この単一のファイルは、アーカイブ内のファイルが元のファイルの構造とアクセス許可を保持しながら、転送を容易にするために簡単に圧縮できます。

tarツールを使用して、アーカイブからファイルを作成、一覧表示、および抽出できます。 tarで作成されたアーカイブは、通常、「tarファイル」、「tarアーカイブ」、またはすべてのアーカイブファイルが1つにまとめられているため、「tarball」と呼ばれます。

このチュートリアルでは、tarを使用してアーカイブを作成し、アーカイブの内容を一覧表示し、アーカイブからファイルを抽出する方法を示します。これら3つの操作すべてで使用される2つの一般的なオプションは、「-f」と「-v」です。アーカイブファイルの名前を指定するには、「-f」の後にファイル名を使用します。 '-v'( "verbose")オプションを使用して、ファイルが処理されるときにtarにファイルの名前を出力させます。 '-v'オプションは必須ではありませんが、tar操作の進行状況を監視できます。

このチュートリアルの残りの部分では、3つのトピックについて説明します。1-アーカイブファイルの作成、2-アーカイブファイルのコンテンツの一覧表示、3-アーカイブファイルからのコンテンツの抽出。このチュートリアルは、アーカイブファイル管理に関連する6つの実用的な質問を調査して締めくくります。このチュートリアルから得たものは、に関連するタスクを実行するために不可欠です サイバーセキュリティクラウドテクノロジー.

1-アーカイブファイルの作成

tarを使用してアーカイブを作成するには、「-c」(「作成」)オプションを使用し、作成するアーカイブファイルの名前を「-f」オプションを使用して指定します。 'my-backup.tar'のように、拡張子が '.tar'の名前を使用するのが一般的な方法です。特に明記されていない限り、この記事の残りの部分で使用されるすべてのコマンドとコマンドパラメータは小文字で使用されていることに注意してください。ターミナルでこの記事のコマンドを入力するときは、各コマンドラインの先頭にある$プロンプト記号を入力する必要がないことに注意してください。

アーカイブするファイルの名前を引数として指定します。ディレクトリとそれに含まれるすべてのファイルとサブディレクトリのアーカイブを作成するには、引数としてディレクトリの名前を指定します。

 「project」ディレクトリの内容から「project.tar」というアーカイブを作成するには、次のように入力します。

$ tar -cvfproject.tarプロジェクト

このコマンドは、「project」ディレクトリとそのすべての内容を含む「project.tar」というアーカイブファイルを作成します。元の「プロジェクト」ディレクトリは変更されません。

'-z'オプションを使用して、書き込み中のアーカイブを圧縮します。これにより、非圧縮アーカイブを作成してからgzipを使用して圧縮するのと同じ出力が得られますが、余分な手順が不要になります。

 'project'ディレクトリの内容から 'project.tar.gz'という圧縮アーカイブを作成するには、次のように入力します。

$ tar -zcvfproject.tar.gzプロジェクト

このコマンドは、「project」ディレクトリとそのすべての内容を含む圧縮アーカイブファイル「project.tar.gz」を作成します。元の「プロジェクト」ディレクトリは変更されません。

注意: '-z'オプションを使用する場合は、アーカイブ名を '.tar'拡張子ではなく '.tar.gz'拡張子で指定する必要があります。これにより、ファイル名はアーカイブが圧縮されていることを示します。必須ではありませんが、従うことをお勧めします。

圧縮の形式はGzipだけではありません。 bzip2とxzもあります。拡張子がxzのファイルを見ると、xzを使用して圧縮されていることがわかります。拡張子が.bz2のファイルを見ると、bzip2を使用して圧縮されていると推測できます。 bzip2が保守されなくなっているため、bzip2から離れて、xzに焦点を合わせます。 xzを使用して圧縮する場合、ファイルの圧縮に時間がかかります。ただし、圧縮の方がはるかに効果的であるため、通常は待つ価値があります。つまり、結果のファイルは通常、使用される他の圧縮方法よりも小さくなります。さらに良いのは、解凍、つまりファイルの展開が、さまざまな圧縮方法間でそれほど変わらないという事実です。以下に、tarを使用してファイルを圧縮するときにxzを利用する方法の例を示します。

  $ tar -Jcvfproject.tar.xzプロジェクト

gzipの場合は-zを、xzの場合は大文字の-Jに切り替えるだけです。圧縮形式の違いを表示するための出力を次に示します。

ご覧のとおり、xzは圧縮に最も時間がかかります。ただし、ファイルサイズを削減するのに最適なため、待つ価値があります。ファイルが大きいほど、圧縮率も高くなります。

2-アーカイブファイルの内容の一覧表示

tarアーカイブの内容を抽出せずに一覧表示するには、「-t」オプションを指定してtarを使用します。

 'project.tar'というアーカイブの内容を一覧表示するには、次のように入力します。

$ tar -tvf project.tar  

このコマンドは、「project.tar」アーカイブの内容を一覧表示します。 '-v'オプションを '-t'オプションと一緒に使用すると、tarは、ファイル名とともに、各ファイルのアクセス許可と変更時刻を出力します。これは、lsコマンドで '-l'オプションを使用して使用するのと同じ形式です。

 'project.tar.gz'という圧縮アーカイブの内容を一覧表示するには、次のように入力します。

$ tar -tvf project.tar

 3-アーカイブファイルからのコンテンツの抽出

抽出する(または 開梱)tarアーカイブの内容。「-x」(「抽出」)オプションを指定してtarを使用します。

 'project.tar'というアーカイブの内容を抽出するには、次のように入力します。

$ tar -xvf project.tar

このコマンドは、「project.tar」アーカイブの内容を現在のディレクトリに抽出します。

アーカイブが圧縮されている場合、つまり通常は「.tar.gz」または「.tgz」拡張子が付いている場合は、「-z」オプションを含めます。

 'project.tar.gz'という圧縮アーカイブの内容を抽出するには、次のように入力します。

$ tar -zxvf project.tar.gz

注意: 現在のディレクトリにアーカイブ内のファイルまたはサブディレクトリと同じ名前のファイルまたはサブディレクトリがある場合、それらのファイルはアーカイブが抽出されるときに上書きされます。アーカイブに含まれているファイルがわからない場合は、最初にアーカイブの内容をリストすることを検討してください。

アーカイブの内容を抽出する前に一覧表示するもう1つの理由は、アーカイブ内のファイルがディレクトリに含まれているかどうかを判断するためです。そうでない場合で、現在のディレクトリに多くの無関係なファイルが含まれていると、アーカイブから抽出されたファイルと混同される可能性があります。

ファイルを独自のディレクトリに抽出するには、新しいディレクトリを作成し、アーカイブをそのディレクトリに移動して、そのディレクトリに移動します。ここで、アーカイブからファイルを抽出できます。

アーカイブファイルの作成方法とその内容の一覧表示/抽出方法を学習したので、次に、Linuxの専門家からよく聞かれる次の9つの実用的な質問について説明します。

  • 解凍せずにアーカイブファイルにコンテンツを追加できますか?

残念ながら、ファイルが圧縮されると、それにコンテンツを追加する方法はありません。それを「解凍」するか、コンテンツを抽出し、コンテンツを編集または追加してから、ファイルを再度圧縮する必要があります。小さなファイルの場合、このプロセスは長くはかかりません。大きなファイルの場合は、しばらく時間がかかるように準備してください。

  • アーカイブファイルを解凍せずにコンテンツを削除できますか?

これは、使用されているtarのバージョンによって異なります。新しいバージョンのtarは–deleteをサポートします。

たとえば、ファイルfile1とfile2があるとします。これらは、次の方法でfile.tarから削除できます。

$ tar -vf file.tar –delete file1 file2

ディレクトリdir1を削除するには:

$ tar -f file.tar –delete dir1 / *

  • フォルダの圧縮とアーカイブの違いは何ですか?

アーカイブと圧縮の違いを確認する最も簡単な方法は、最終結果を確認することです。ファイルをアーカイブするときは、複数のファイルを1つに結合します。したがって、100kbのファイルを10個アーカイブすると、1000kbのファイルが1つになります。一方、これらのファイルを圧縮すると、ファイルが数kbまたは100kbに近くなる可能性があります。

  • アーカイブファイルを圧縮する方法は?

上で見たように、cvfオプションを指定したtarコマンドを使用してファイルを作成およびアーカイブできます。作成したアーカイブファイルを圧縮するには、2つのオプションがあります。 gzipなどの圧縮を介してアーカイブファイルを実行します。または、tarコマンドを使用するときに圧縮フラグを使用します。最も一般的な圧縮フラグは、gzipの場合は-z、bzipの場合は-j、xzの場合は-Jです。以下に最初の方法を示します。

$ gzip file.tar

または、tarコマンドを使用するときに圧縮フラグを使用することもできます。ここでは、gzipフラグ「z」が表示されます。

$ tar -cvzf file.tar / some / directory

  • 複数のディレクトリやファイルのアーカイブを一度に作成するにはどうすればよいですか?

複数のファイルまたはディレクトリを一度にアーカイブしたい状況になることは珍しくありません。また、一度に複数のファイルやディレクトリをtarするのは思ったほど難しくありません。 tarコマンドの引数としてtarするファイルまたはディレクトリを指定するだけです。

$ tar -cvzf file.tar file1 file2 file3

または

$ tar -cvzf file.tar / some / directory1 / some / directory2

  • アーカイブを作成するときにディレクトリやファイルをスキップするにはどうすればよいですか?

ディレクトリまたはファイルをアーカイブしたいが、特定のファイルをアーカイブする必要がないという状況に遭遇する可能性があります。これらのファイルのアーカイブまたは「除外」を回避するには、tarで–excludeオプションを使用します。

$ tar –exclude '/ some / directory' -cvf file.tar / home / user

したがって、この例では/ home / userがアーカイブされますが、/ home / userの下にある場合は/ some / directoryが除外されます。ソースと宛先の前に–excludeオプションを配置し、除外されるファイルまたはディレクトリを一重引用符でカプセル化することが重要です。

概要

tarコマンドは、バックアップの作成や不要になったファイルの圧縮に役立ちます。ファイルを変更する前に、ファイルをバックアップすることをお勧めします。変更後に意図したとおりに機能しない場合は、いつでも古いファイルに戻すことができます。使用されなくなったファイルを圧縮すると、システムをクリーンに保ち、ディスク容量の使用量を減らすことができます。利用可能な他のユーティリティがありますが、tarはその汎用性、使いやすさ、人気で最高の地位を占めています。

リソース

Linuxについて詳しく知りたい場合は、次の記事とチュートリアルを読むことを強くお勧めします。

著者について

マットザンド シリアルアントレプレナーであり、3つのテックスタートアップの創設者です。 DCWebメーカー, Coding Bootcamps ハイスクールテクノロジーサービス。彼はの筆頭著者です HyperledgerFabricを使用した実践的なスマートコントラクト開発 オライリーメディアの本。彼は、Hyperledger、Ethereum、CordaR3プラットフォームのブロックチェーン開発に関する100以上の技術記事とチュートリアルを書いています。 DC Web Makersで、彼はエンタープライズ分散型アプリケーションのコンサルティングと展開のためのブロックチェーンエキスパートのチームを率いています。チーフアーキテクトとして、彼はコーディングブートキャンプのブロックチェーンコースとトレーニングプログラムを設計および開発してきました。彼はメリーランド大学で経営学の修士号を取得しています。ブロックチェーンの開発とコンサルティングの前は、シニアWebおよびモバイルアプリの開発者およびコンサルタント、エンジェル投資家、いくつかの新興企業のビジネスアドバイザーとして働いていました。あなたはLIで彼とつながることができます: https://www.linkedin.com/in/matt-zand-64047871

ケビンダウンズ RedHat認定システム管理者またはRHCSAです。現在IBMでシステム管理者として働いている彼は、さまざまなLinuxディストリビューションで実行されている何百ものサーバーの管理を担当しています。彼はのリードLinuxインストラクターです Coding Bootcamps 彼が書いたところ 5つの自習型コース.

Linux Foundationのトレーニングと認定に関心をお寄せいただきありがとうございます。私たちは、中国のトレーニングサイトからより良いサービスを提供できると考えています。このサイトにアクセスするには、以下をクリックしてください。

Linux Foundationのカルチャに対するフィードバックは、より適切に、中国のカルチャウェブサイトに反映されることを期待しています。