Linuxのコマンドラインでファイルやディレクトリをまとめて圧縮したいとき、よく使われるのが tar
コマンドです。特に tar -czvf
というオプションの組み合わせは、複数のファイルを一つにまとめつつ、同時にgzip形式で圧縮する際に重宝されます。初めてLinuxに触れる方には少し難しく感じるかもしれませんが、この記事では tar -czvf
の使い方を基本から丁寧に解説します。使いこなせるようになれば、バックアップやデータの受け渡しなどにも役立ちますよ。
tar
(タール)は、複数のファイルやディレクトリをひとつのアーカイブファイルにまとめるためのコマンドです。元々はテープ装置にデータを書き込むためのコマンドとして誕生しましたが、今では多くのLinuxディストリビューションで、アーカイブ作成と圧縮の定番ツールとして使われています。
ただし、tarコマンド単体では圧縮は行われません。あくまで「ひとまとめ」にするだけです。圧縮を行うには、gzipやbzip2などの圧縮プログラムと連携する必要があります。
gzip(ジー・ジップ)は、ファイルを圧縮してサイズを小さくするためのツールです。.gz
という拡張子が付くファイルはgzip形式で圧縮されたファイルであることを示しています。
tarで作成したアーカイブファイル(たとえば backup.tar
)をそのままgzipで圧縮すると、backup.tar.gz
という形になります。このように、tarとgzipはよくセットで使われるのです。
ただし、わざわざ2つのコマンドを使うのは面倒ですよね。そんなときに便利なのが、tar -czvf
というオプションの組み合わせです。
tar -czvf
はそれぞれのオプションが役割を持っています。以下に簡潔にまとめます。
オプション | 意味 |
---|---|
-c | アーカイブの作成(create) |
-z | gzipで圧縮する(gzip) |
-v | 処理内容を表示(verbose) |
-f | ファイル名を指定(file) |
つまり、tar -czvf archive.tar.gz folder/
とした場合は、
「folder/
ディレクトリを archive.tar.gz
という名前で gzip 圧縮されたアーカイブとして作成し、その過程を画面に表示する」
という意味になります。
では実際に使ってみましょう。以下のようなディレクトリ構造があると仮定します。
markdownコピーする編集するproject/
├── file1.txt
├── file2.txt
└── subdir/
└── file3.txt
この project
フォルダをまとめて圧縮する場合、以下のようにコマンドを入力します。
tar -czvf project.tar.gz project/
すると、project.tar.gz
という圧縮ファイルが作成され、元のディレクトリ構造を保持したまま、すべてのファイルがまとめられます。
また、コマンドの実行中には -v
オプションの効果で、以下のように処理されたファイル名が表示されます。
project/
project/file1.txt
project/file2.txt
project/subdir/
project/subdir/file3.txt
もし -v
を省略すると、圧縮の進行状況を表示せずに処理されます。以下のようにすれば静かに圧縮できます。
tar -czf project.tar.gz project/
また、圧縮せずにただまとめたい場合は -z
を外します。
tar -cvf project.tar project/
このように、必要に応じてオプションを組み合わせて柔軟に使えます。
作成した project.tar.gz
を解凍するには、以下のコマンドを使います。
tar -xzvf project.tar.gz
オプションの意味は次の通りです。
-x
:展開(extract)-z
:gzip圧縮されたファイルの展開-v
:詳細表示-f
:ファイル名の指定解凍したいだけなら、詳細表示の -v
を省略してもOKです。
tar -xzf project.tar.gz
解凍後は、元の project
フォルダが同じ構造で復元されます。
-z
オプションを使った際にこのエラーが出る場合は、gzipがインストールされていない可能性があります。以下のコマンドでインストールできます(Debian/Ubuntuの場合):
sudo apt install gzip
RedHat系のディストリビューションならこちら:
sudo yum install gzip
これはエラーではなく警告です。アーカイブ作成時に、絶対パスの先頭の「/」を取り除いていることを知らせています。セキュリティ上の配慮なので、基本的に気にしなくて大丈夫です。
初心者の方がよく混乱するのが「.zip
ファイルとの違い」です。
比較項目 | tar.gz | zip |
---|---|---|
圧縮方式 | gzip | zip |
コマンド | tar + gzip | zip , unzip |
ディレクトリ対応 | 得意 | やや不得意(zipでも可能だがオプションが必要) |
ファイル名 | .tar.gz または.tgz | .zip |
Linuxやサーバー環境では .tar.gz
のほうがよく使われます。Windows環境では .zip
のほうがなじみ深いですね。
tar -czvf
コマンドは、Linuxでのファイル操作において非常に便利で、しかも頻繁に使われる基本中の基本です。今回ご紹介した内容をおさらいすると、
tar
はアーカイブ作成、gzip
は圧縮を担当tar -czvf
でまとめてgzip圧縮が可能-v
を使えば処理状況が見えて安心-xzvf
でOK.tar.gz
はLinuxでは定番のアーカイブ形式これらを理解して使いこなせるようになれば、バックアップやデータ整理、共有がグッと楽になります。ぜひ、色々なファイルで試してみてください!