「tar zxvf」を使うのはオジサンだけ!?自動で認識されるので「z」「j」「J」の指定は不要!

Linuxテクニック

tarコマンドで「.tar.gz」ファイルを展開する場合、以下のようなコマンドがよく用いられます。

tar zxvf archive.tar.gz

z」は「gzip」コマンドで伸張処理を行うこと、「x」は展開すること、「v」は処理したファイルを出力すること、「f」はアーカイブファイルを使うことを示しています。

しかし、GNU tar 1.15(2004年12月リリース)より、「アーカイブファイルが圧縮されているかどうかを自動判別し、必要に応じてgzipなどの圧縮・伸張コマンドを呼び出す」という機能が追加されています。

そのため、「z」オプションは不要です。以下のように「z」を省略して実行しても、カレントディレクトリに「archive.tar.gz」が展開されます。

tar xvf archive.tar.gz

オプションの前に「」を付けて、以下のように実行しても同じです。

tar -xvf archive.tar.gz

なお、「bzip2」で圧縮された「.tar.bz2」や「xz」で圧縮された「tar.xz」などの圧縮アーカイブファイルを展開する場合も、以下の例のように「j」や「J」を付ける必要はありません。

tar xvf archive.tar.bz2
tar xvf archive.tar.xz

もちろん、「z」「j」「J」を指定して展開しても問題ありません。「tar zxvf」あるいは「tar xvzf」で「指が覚えてしまっている」なら、無理に「tar xvf」に変えるメリットは少ないでしょう。ただ、「tarコマンドで展開する時に、圧縮プログラムを指定するオプションは省略できる」ということを知っておけば、たとえば「xz」を指定するオプション「J」を忘れてしまった場合などに役立つでしょう。

関連記事


tarの「自動圧縮」オプション「a」が意外に便利!
tarコマンドで圧縮する時、圧縮方式にあわせて「z」(gzipで圧縮)、「j」(bzip2で圧縮)、「J」(xzで圧縮)などのオプションを使い分けるのは、意外と面倒です。また、「j」と「J」を間違えて「.tar.bz2」という名前なのに「x...

tarコマンドで「一部のファイルやディレクトリを除外」したい!どうすればいい?
tarコマンドを使って「一部のファイルやディレクトリを除外」してアーカイブファイルの作成と展開を行う方法を、例を用いて解説します。 一部のファイルを除外してtarアーカイブを作成する tarコマンドに「--exclude パターン」を指...

コメント

タイトルとURLをコピーしました