助け合いフォーラム
LPIC Lv1-101(Ver5.0)
問題ID : 3337
問題を開く
gzip形式で圧縮したアーカイブファイル「test.tar.gz」の内容をカレントディレクトリに展開せずに表示したい。適切なコマンドは次のうちどれか。(2つ選択)
正解
tar ftvz test.tar.gz
gzip -cd test.tar.gz | tar ftv -
解説
tarコマンドは複数のファイルをまとめて1つのファイル(アーカイブ)にする、またはアーカイブを展開する際に使用するコマンドです。アーカイブを展開することなくアーカイブの内容を確認することもできます。
tarコマンドの書式と主なオプションは以下のとおりです。
tar [オプション] [ファイルまたはディレクトリ名]

なお、tarコマンドではオプションの「-」は省略できます。その場合、オプションは順不同でも動作します。
上表より、必要なオプションは「t」、「f」、「z」です。また、「v」オプションを使用することで詳細情報を表示できます。
例)tar ftvz test.tar.gz
もしくは、gzipの-dオプション(圧縮ファイルを解凍する)と、-cオプション(標準出力へ書き出す)で解凍したアーカイブのデータを、tarコマンドにパイプ(|)で渡しても同じ事が可能です。
例)gzip -cd test.tar.gz | tar ftv -
*上記tarコマンドの最後のハイフンは、アーカイブを標準入力から読み込むことを意味し、この場合は必須です。
したがって正解は
・tar ftvz test.tar.gz
・gzip -cd test.tar.gz | tar ftv -
です。
以下は実行例です。
アーカイブの内容を表示していますが、実際はカレントディレクトリに展開されていません。

その他の選択肢は以下のとおりです。
・gzip -cd test.tar.gz | tar ftv
エラーになるので誤りです。上記tarコマンドの最後には、アーカイブを標準入力から読み込むことを意味するハイフンが必要になります。
・tar fxvz test.tar.gz
・gzip -cd test.tar.gz | tar fxv -
これらのコマンドはアーカイブからファイルを展開するので誤りです。
tarコマンドの書式と主なオプションは以下のとおりです。
tar [オプション] [ファイルまたはディレクトリ名]

なお、tarコマンドではオプションの「-」は省略できます。その場合、オプションは順不同でも動作します。
上表より、必要なオプションは「t」、「f」、「z」です。また、「v」オプションを使用することで詳細情報を表示できます。
例)tar ftvz test.tar.gz
もしくは、gzipの-dオプション(圧縮ファイルを解凍する)と、-cオプション(標準出力へ書き出す)で解凍したアーカイブのデータを、tarコマンドにパイプ(|)で渡しても同じ事が可能です。
例)gzip -cd test.tar.gz | tar ftv -
*上記tarコマンドの最後のハイフンは、アーカイブを標準入力から読み込むことを意味し、この場合は必須です。
したがって正解は
・tar ftvz test.tar.gz
・gzip -cd test.tar.gz | tar ftv -
です。
以下は実行例です。
アーカイブの内容を表示していますが、実際はカレントディレクトリに展開されていません。

その他の選択肢は以下のとおりです。
・gzip -cd test.tar.gz | tar ftv
エラーになるので誤りです。上記tarコマンドの最後には、アーカイブを標準入力から読み込むことを意味するハイフンが必要になります。
・tar fxvz test.tar.gz
・gzip -cd test.tar.gz | tar fxv -
これらのコマンドはアーカイブからファイルを展開するので誤りです。
参考
Linuxでは、複数のファイルやディレクトリを1つのファイルにまとめることを「アーカイブ」といいます。
また、ファイルを圧縮してファイルサイズを縮小したり、圧縮されたファイルを解凍して元の状態に戻したりすることができます。
アーカイブからファイルを取り出すことを「展開」、圧縮されたファイルを元の状態に戻すことを「解凍」といいます。
ファイルのアーカイブや圧縮・解凍を行うコマンドには以下があります。
・tar
・cpio
・gzip / gunzip
・bzip2 / bunzip2
・xz / unxz
■tarコマンド
tarコマンドは、アーカイブの作成・展開と、アーカイブの圧縮・解凍を行うコマンドです。
tarコマンドの書式と主なオプションは以下のとおりです。
tar [オプション] [ファイルまたはディレクトリ名]

tarコマンドでは、オプションの「-」を省略して指定できます。その場合、オプションは順不同でも動作します。
例1)「aa」「bb」「cc」の3ファイルを1つにまとめて「hoge.tar」というアーカイブにする場合
$ tar cf hoge.tar aa bb cc
例2)「hoge.tar」というアーカイブに含まれるファイルを表示する場合
$ tar tf hoge.tar
aa
bb
cc
例3)「hoge.tar」というアーカイブを展開する場合
$ tar xf hoge.tar
例4)「dir」ディレクトリを、bzip2形式で圧縮した「dir.tar.bz2」というアーカイブにする場合
$ tar cjf dir.tar.bz2 dir
例5)gzip形式で圧縮したアーカイブ「dir.tar.gz」(もしくは「dir.tgz」)を解凍して展開する場合
$ tar xzf dir.tar.gz
$ tar xzf dir.tgz
gzip形式で圧縮したアーカイブの拡張子は「tar.gz」のほか、略して「tgz」とする場合もあります。
■cpioコマンド
cpio形式のアーカイブを扱うにはcpioコマンドを使用します。
cpioコマンドでは、基本的にアーカイブ対象となるファイル名の一覧を標準入力から受け取ります。作成したアーカイブは、標準出力へ出力します。そのため、アーカイブを作成する場合は、findやlsコマンドなどで対象となるファイル名の一覧を取得します。取得した一覧は、パイプ(|)を使ってcpioコマンドの標準入力に渡します。また、作成したアーカイブは、標準出力を「>」でリダイレクトしてファイルに保存できます。
cpioコマンドの書式と主なオプションは以下のとおりです。
cpio [オプション]
<オプション例>
-o : 新しいアーカイブを作成
-i : アーカイブからファイルを展開
例)カレントディレクトリ以下にある全てのファイルを1つにまとめて、「backup.cpio」というアーカイブを作成
$ find . | cpio -o > backup.cpio
例)cpio形式のアーカイブ「backup.cpio」からファイルを展開
$ cpio -i < backup.cpio
■gzip / gunzipコマンド
gzip形式でファイルを圧縮するにはgzipコマンドを利用します。
gzip形式のファイルは、gzipコマンドの-dオプション、もしくはgunzipコマンドで解凍できます。
gzipコマンドの書式は以下のとおりです。
gzip [オプション] [ファイル名]
例)ファイル「configure」をgzipコマンドで圧縮する

例)gzip形式で圧縮されたファイル「configure.gz」を「gzip -d」コマンドで解凍する

■bzip2 / bunzip2コマンド
bzip2形式でファイルを圧縮するにはbzip2コマンドを使用します。
bzip2形式のファイルは、bzip2コマンドの-dオプション、もしくはbunzip2コマンドで解凍できます。
bzip2コマンドの書式は以下のとおりです。
bzip2 [オプション] [ファイル名]
例)ファイル「configure」をbzip2コマンドで圧縮する

ファイル「configure」が圧縮され「configure.bz2」となり、ファイルサイズが小さくなっています。
例)ファイル「configure.bz2」を「bzip2 -d」コマンドで解凍する

■xz / unxzコマンド
xz形式でファイルを圧縮するにはxzコマンドを使用します。
xz形式のファイルは、xzコマンドの-dオプション、もしくはunxzコマンドで解凍できます。
xzコマンドの書式は以下のとおりです。
xz [オプション] [ファイル名]
例)ファイル「mail_backup」をxzコマンドで圧縮する

また、tarコマンドの-Jオプションでxz形式を扱うことができます。bzip2形式用のオプションである-jとは異なりますので注意してください。
例)xz形式で圧縮されたファイル「test.tar.xz」をtarコマンドの-Jオプションで扱う

オプション-jではエラーになりますが、-Jを用いることで、「tJf」で圧縮ファイルの一覧表示、「xvJf」で解凍と展開が正しく行えることがわかります。
また、ファイルを圧縮してファイルサイズを縮小したり、圧縮されたファイルを解凍して元の状態に戻したりすることができます。
アーカイブからファイルを取り出すことを「展開」、圧縮されたファイルを元の状態に戻すことを「解凍」といいます。
ファイルのアーカイブや圧縮・解凍を行うコマンドには以下があります。
・tar
・cpio
・gzip / gunzip
・bzip2 / bunzip2
・xz / unxz
■tarコマンド
tarコマンドは、アーカイブの作成・展開と、アーカイブの圧縮・解凍を行うコマンドです。
tarコマンドの書式と主なオプションは以下のとおりです。
tar [オプション] [ファイルまたはディレクトリ名]

tarコマンドでは、オプションの「-」を省略して指定できます。その場合、オプションは順不同でも動作します。
例1)「aa」「bb」「cc」の3ファイルを1つにまとめて「hoge.tar」というアーカイブにする場合
$ tar cf hoge.tar aa bb cc
例2)「hoge.tar」というアーカイブに含まれるファイルを表示する場合
$ tar tf hoge.tar
aa
bb
cc
例3)「hoge.tar」というアーカイブを展開する場合
$ tar xf hoge.tar
例4)「dir」ディレクトリを、bzip2形式で圧縮した「dir.tar.bz2」というアーカイブにする場合
$ tar cjf dir.tar.bz2 dir
例5)gzip形式で圧縮したアーカイブ「dir.tar.gz」(もしくは「dir.tgz」)を解凍して展開する場合
$ tar xzf dir.tar.gz
$ tar xzf dir.tgz
gzip形式で圧縮したアーカイブの拡張子は「tar.gz」のほか、略して「tgz」とする場合もあります。
■cpioコマンド
cpio形式のアーカイブを扱うにはcpioコマンドを使用します。
cpioコマンドでは、基本的にアーカイブ対象となるファイル名の一覧を標準入力から受け取ります。作成したアーカイブは、標準出力へ出力します。そのため、アーカイブを作成する場合は、findやlsコマンドなどで対象となるファイル名の一覧を取得します。取得した一覧は、パイプ(|)を使ってcpioコマンドの標準入力に渡します。また、作成したアーカイブは、標準出力を「>」でリダイレクトしてファイルに保存できます。
cpioコマンドの書式と主なオプションは以下のとおりです。
cpio [オプション]
<オプション例>
-o : 新しいアーカイブを作成
-i : アーカイブからファイルを展開
例)カレントディレクトリ以下にある全てのファイルを1つにまとめて、「backup.cpio」というアーカイブを作成
$ find . | cpio -o > backup.cpio
例)cpio形式のアーカイブ「backup.cpio」からファイルを展開
$ cpio -i < backup.cpio
■gzip / gunzipコマンド
gzip形式でファイルを圧縮するにはgzipコマンドを利用します。
gzip形式のファイルは、gzipコマンドの-dオプション、もしくはgunzipコマンドで解凍できます。
gzipコマンドの書式は以下のとおりです。
gzip [オプション] [ファイル名]
例)ファイル「configure」をgzipコマンドで圧縮する

例)gzip形式で圧縮されたファイル「configure.gz」を「gzip -d」コマンドで解凍する

■bzip2 / bunzip2コマンド
bzip2形式でファイルを圧縮するにはbzip2コマンドを使用します。
bzip2形式のファイルは、bzip2コマンドの-dオプション、もしくはbunzip2コマンドで解凍できます。
bzip2コマンドの書式は以下のとおりです。
bzip2 [オプション] [ファイル名]
例)ファイル「configure」をbzip2コマンドで圧縮する

ファイル「configure」が圧縮され「configure.bz2」となり、ファイルサイズが小さくなっています。
例)ファイル「configure.bz2」を「bzip2 -d」コマンドで解凍する

■xz / unxzコマンド
xz形式でファイルを圧縮するにはxzコマンドを使用します。
xz形式のファイルは、xzコマンドの-dオプション、もしくはunxzコマンドで解凍できます。
xzコマンドの書式は以下のとおりです。
xz [オプション] [ファイル名]
例)ファイル「mail_backup」をxzコマンドで圧縮する

また、tarコマンドの-Jオプションでxz形式を扱うことができます。bzip2形式用のオプションである-jとは異なりますので注意してください。
例)xz形式で圧縮されたファイル「test.tar.xz」をtarコマンドの-Jオプションで扱う

オプション-jではエラーになりますが、-Jを用いることで、「tJf」で圧縮ファイルの一覧表示、「xvJf」で解凍と展開が正しく行えることがわかります。
オプションのfについて
投稿日 2025/11/27
tarコマンドのfオプションって順不同なんでしょうか?
普通は最後につけると思うのですが...
y
yklv
2025/12/01 19:28
解説や参考に以下の文がありますね。
オプションは順不同でも動作しますが、慣習的にはc, x, tのような動作オプションを先頭に指定します。
他の問題や、参考の例をみても、fオプションの位置にはばらつきがあるようです。
あえて順不同でも大丈夫だと強調しているのかもしれません。
コメント
2025/12/01 19:31
この結果からは順不同っぽいですね。
$ tar ftvz test.tar.gz 1> /dev/null && echo $?
0
$ tar tfvz test.tar.gz 1> /dev/null && echo $?
0
$ tar tvfz test.tar.gz 1> /dev/null && echo $?
0
$ tar tvzf test.tar.gz 1> /dev/null && echo $?
0
$ tar vtzf test.tar.gz 1> /dev/null && echo $?
0
$ tar vztf test.tar.gz 1> /dev/null && echo $?
0
$ tar vzft test.tar.gz 1> /dev/null && echo $?
0
$ tar zvft test.tar.gz 1> /dev/null && echo $?
0
$ tar zfvt test.tar.gz 1> /dev/null && echo $?
0
$ tar zftv test.tar.gz 1> /dev/null && echo $?
0
コメント
この投稿に対して返信しませんか?