Tar を使って飛空船の神秘的なアーカイブを保存する

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

Linux の tar コマンドは、ファイルやディレクトリをアーカイブするために使用される強力なユーティリティです。このツールを使用すると、ユーザーは複数のファイルやディレクトリを単一のアーカイブファイルにまとめることができ、データの保存、転送、バックアップをより効率的に行うことができます。この実験では、tar コマンドを使用してアーカイブを作成し、その内容を表示し、ファイルを抽出する方法を学びます。これらのスキルは、システム管理者、開発者、および効率的にデータを管理する必要のあるすべての Linux ユーザーにとって不可欠です。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/CompressionandArchivingGroup(["Compression and Archiving"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/BasicFileOperationsGroup -.-> linux/rm("File Removing") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/CompressionandArchivingGroup -.-> linux/tar("Archiving") linux/CompressionandArchivingGroup -.-> linux/gzip("Gzip") subgraph Lab Skills linux/ls -.-> lab-271397{{"Tar を使って飛空船の神秘的なアーカイブを保存する"}} linux/touch -.-> lab-271397{{"Tar を使って飛空船の神秘的なアーカイブを保存する"}} linux/rm -.-> lab-271397{{"Tar を使って飛空船の神秘的なアーカイブを保存する"}} linux/cd -.-> lab-271397{{"Tar を使って飛空船の神秘的なアーカイブを保存する"}} linux/mkdir -.-> lab-271397{{"Tar を使って飛空船の神秘的なアーカイブを保存する"}} linux/grep -.-> lab-271397{{"Tar を使って飛空船の神秘的なアーカイブを保存する"}} linux/tar -.-> lab-271397{{"Tar を使って飛空船の神秘的なアーカイブを保存する"}} linux/gzip -.-> lab-271397{{"Tar を使って飛空船の神秘的なアーカイブを保存する"}} end

アーカイブ用のディレクトリ構造の作成

アーカイブを作成する前に、操作対象となるいくつかのファイルとディレクトリが必要です。このステップでは、後でアーカイブ化する様々なファイルを含むディレクトリ構造を作成します。

まず、デフォルトの作業ディレクトリに移動しましょう。

cd ~/project

次に、reportsspecificationsreferences という 3 つのサブディレクトリを持つ document_library というディレクトリを作成しましょう。

mkdir -p ~/project/document_library/{reports,specifications,references}

mkdir コマンドはディレクトリを作成し、-p オプションを使用すると、親ディレクトリが存在しない場合にも作成できます。中括弧 {} は、複数のサブディレクトリを一度に作成するために使用されます。

次に、これらの各ディレクトリにいくつかのサンプルファイルを作成しましょう。

touch ~/project/document_library/reports/{quarterly,annual,monthly}.txt
touch ~/project/document_library/specifications/{product,service,system}.txt
touch ~/project/document_library/references/{guide,manual,handbook}.txt

touch コマンドは空のファイルを作成します。この場合、各サブディレクトリに 3 つのテキストファイルを作成しています。

ls コマンドに -R オプションを指定してディレクトリの内容を再帰的に表示することで、ディレクトリ構造が正しく作成されたことを確認しましょう。

ls -R ~/project/document_library

以下のような出力が表示されるはずです。

/home/labex/project/document_library:
references  reports  specifications

/home/labex/project/document_library/references:
guide.txt  handbook.txt  manual.txt

/home/labex/project/document_library/reports:
annual.txt  monthly.txt  quarterly.txt

/home/labex/project/document_library/specifications:
product.txt  service.txt  system.txt

これは、サンプルファイルを含むディレクトリ構造が正常に作成されたことを示しています。次のステップでは、tar コマンドを使用してこれらのファイルのアーカイブを作成する方法を学びます。

tar を使用したアーカイブの作成

ディレクトリ構造が設定されたので、tar コマンドを使用して document_library ディレクトリ全体のアーカイブを作成しましょう。tar コマンドは非常に汎用性が高く、多くのオプションがありますが、ここでは最も一般的なオプションに焦点を当てます。

tar でアーカイブを作成する基本的な構文は次の通りです。

tar [options] [archive-name] [files or directories to archive]

一般的なオプションは以下の通りです。

  • -c: 新しいアーカイブを作成する
  • -z: gzip を使用してアーカイブを圧縮する
  • -v: 詳細モード(進行状況を表示する)
  • -f: アーカイブのファイル名を指定する
  • -C: 操作を実行する前に指定されたディレクトリに移動する

document_library ディレクトリの圧縮アーカイブを作成しましょう。

tar -czvf ~/project/documents_archive.tar.gz -C ~/project document_library

このコマンドでは、

  • -ctar に新しいアーカイブを作成するよう指示します。
  • -ztar に gzip を使用してアーカイブを圧縮するよう指示します。
  • -v は詳細モードを有効にし、処理されているファイルを表示します。
  • -f ~/project/documents_archive.tar.gz はアーカイブファイルの名前を指定します。
  • -C ~/projecttar にアーカイブを作成する前に ~/project ディレクトリに移動するよう指示します。
  • document_library はアーカイブしたいディレクトリです。

アーカイブに追加されるすべてのファイルが一覧表示される出力が表示されるはずです。これはアーカイブが正常に作成されていることを示しています。

アーカイブが作成されたことを確認するために、その存在とサイズを確認しましょう。

ls -lh ~/project/documents_archive.tar.gz

出力は次のように表示されるはずです。

-rw-r--r-- 1 labex labex 237 Sep 22 10:00 /home/labex/project/documents_archive.tar.gz

ls-lh オプションは、人間が読みやすいファイルサイズを含む詳細情報を表示します。実際のファイルサイズは異なる場合がありますが、サンプルファイルが空であるため、比較的小さくなるはずです。

おめでとうございます!ディレクトリ構造の圧縮アーカイブを正常に作成しました。次のステップでは、このアーカイブを展開せずに内容を表示する方法を探ります。

アーカイブの内容を表示する

アーカイブを展開する前に、その内容を表示して、期待するファイルが含まれていることを確認したり、特定のファイルを探したりすることは、しばしば役立ちます。tar コマンドには、アーカイブを展開せずにその内容を一覧表示するオプションがあります。

作成したアーカイブの内容を一覧表示するには、次のコマンドを使用します。

tar -tvf ~/project/documents_archive.tar.gz

このコマンドでは、

  • -ttar にアーカイブの内容を一覧表示するよう指示します。
  • -v は詳細モードを有効にし、詳細情報を表示します。
  • -f ~/project/documents_archive.tar.gz は調べるアーカイブファイルを指定します。

次のような出力が表示されるはずです。

drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/
drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/references/
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/references/guide.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/references/handbook.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/references/manual.txt
drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/reports/
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/annual.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/monthly.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/quarterly.txt
drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/specifications/
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/specifications/product.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/specifications/service.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/specifications/system.txt

この出力には、アーカイブ内の各ファイルとディレクトリのパーミッション、所有者、サイズ、変更日付、およびパスが表示されます。

アーカイブ内の特定のファイルを検索したい場合は、出力を grep にパイプで渡すことができます。たとえば、名前に "annual" が含まれるすべてのファイルを検索するには、次のようにします。

tar -tvf ~/project/documents_archive.tar.gz | grep annual

これにより、次のように表示されます。

-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/annual.txt

アーカイブの内容を表示することは、展開する前に中身を確認する必要がある場合、特に大きなアーカイブを扱う場合や特定のファイルのみに関心がある場合に便利です。次のステップでは、アーカイブからファイルを展開する方法を学びます。

アーカイブからファイルを展開する

アーカイブの作成方法と内容の表示方法がわかったので、次はアーカイブからファイルを展開する方法を学びましょう。これは、バックアップからファイルを復元する必要がある場合や、他の人からアーカイブを受け取った場合に便利です。

これを実証するために、まず元のディレクトリ構造が失われたシナリオをシミュレートしましょう。document_library ディレクトリを削除します。

rm -rf ~/project/document_library

rm コマンドはファイルやディレクトリを削除します。-rf オプションは、再帰的に操作し、確認を求めずに強制的に削除するよう指示します。実際のシナリオでこのコマンドを使用する場合は注意してください。このコマンドはファイルを永久に削除します。

ディレクトリが削除されたことを確認しましょう。

ls -la ~/project

一覧に document_library が表示されないはずですが、documents_archive.tar.gz ファイルはまだ表示されるはずです。

では、アーカイブを展開してファイルを復元しましょう。tar で展開する基本的な構文は次の通りです。

tar [options] [archive-name]

一般的な展開オプションは以下の通りです。

  • -x: アーカイブからファイルを展開する
  • -z: gzip を使用して解凍する
  • -v: 詳細モード(進行状況を表示する)
  • -f: アーカイブのファイル名を指定する
  • -C: 展開する前に指定されたディレクトリに移動する

アーカイブを展開しましょう。

tar -xzvf ~/project/documents_archive.tar.gz -C ~/project

このコマンドでは、

  • -xtar にファイルを展開するよう指示します。
  • -ztar に gzip で圧縮されたアーカイブを解凍するよう指示します。
  • -v は詳細モードを有効にし、展開されるファイルを表示します。
  • -f ~/project/documents_archive.tar.gz はアーカイブファイルを指定します。
  • -C ~/projecttar にファイルを ~/project ディレクトリに展開するよう指示します。

アーカイブを作成したときと同様に、展開されるすべてのファイルが一覧表示される出力が表示されるはずです。

ディレクトリ構造が復元されたことを確認しましょう。

ls -R ~/project/document_library

最初に作成したのと同じディレクトリ構造とファイルが表示されるはずです。

/home/labex/project/document_library:
references  reports  specifications

/home/labex/project/document_library/references:
guide.txt  handbook.txt  manual.txt

/home/labex/project/document_library/reports:
annual.txt  monthly.txt  quarterly.txt

/home/labex/project/document_library/specifications:
product.txt  service.txt  system.txt

アーカイブから特定のファイルのみを展開したい場合は、アーカイブ名の後にそれらのパスを指定することができます。たとえば、reports ディレクトリのみを展開するには、次のようにします。

mkdir -p ~/project/extracted_reports
tar -xzvf ~/project/documents_archive.tar.gz -C ~/project/extracted_reports document_library/reports

これにより、reports ディレクトリとその内容のみが extracted_reports ディレクトリに展開されます。

おめでとうございます!tar コマンドを使用してアーカイブからファイルを展開する方法を成功裏に学びました。このスキルは、バックアップの復元、ソースからのソフトウェアのインストール、およびその他多くの Linux 操作に不可欠です。

まとめ

この実験では、Linux で tar コマンドを使用してファイルアーカイブを管理する方法を学びました。いくつかの重要なスキルを練習しました。

  1. アーカイブの準備として、ファイルを含むディレクトリ構造を作成する
  2. -czvf オプションを使用して tar コマンドで圧縮アーカイブを作成する
  3. -tvf オプションを使用してアーカイブを展開せずにその内容を表示する
  4. -xzvf オプションを使用してアーカイブからファイルを展開してデータを復元する

これらのスキルは、バックアップと復元手順、ソフトウェアのインストール、ファイル管理など、多くの Linux 操作において基本的です。tar コマンドは Linux 環境における強力なツールであり、その効果的な使い方を理解することで、データを効率的に管理することができます。

tar コマンドの重要なオプションを覚えておきましょう。

  • -c: 新しいアーカイブを作成する
  • -x: アーカイブからファイルを展開する
  • -t: アーカイブの内容を一覧表示する
  • -z: gzip 圧縮を使用する
  • -v: 詳細モード(進行状況を表示する)
  • -f: アーカイブのファイル名を指定する
  • -C: 操作を実行する前に指定されたディレクトリに移動する

これで、Linux 環境で tar コマンドを自信を持って使用して、バックアップの作成、ファイルの共有、データの復元を行うことができます。