助け合いフォーラム

LinuC

LinuC Lv1-101(Ver10.0)
問題ID : 14645
問題を開く
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 [オプション] [ファイルまたはディレクトリ名]


なお、tarコマンドではオプションの「-」は省略できます。オプションは順不同でも動作しますが、慣習的にはc, x, tのような動作オプションを先頭に指定します。

例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 cfj dir.tar.bz2 dir

例5)gzip形式で圧縮したアーカイブ「dir.tar.gz」(もしくは「dir.tgz」)を展開する場合

$ tar fxz dir.tar.gz
$ tar fxz dir.tgz

gzip形式で圧縮したアーカイブの拡張子は「tar.gz」のほか、略して「tgz」とする場合もあります。
上に戻る

ハイフンっているの?

投稿日 2025/09/04

不正解:gzip -cd test.tar.gz | tar ftv
正解 :gzip -cd test.tar.gz | tar ftv -

この二つが選択肢としてあったが実装環境によって動作は異なるが正しい書式は-なしの方なのではないかという疑問
正直どっちも正解なのでは?

2025/09/04 23:19

ハイフンなしが不正解である理由が解説に以下のように記載されていますが、確認ずみでしょうか?

エラーになるので誤りです。上記tarコマンドの最後には、標準入力からファイル名を受け取る事を意味するハイフンが必要になります。

また、

実装環境によって動作は異なるが正しい書式は-なしの方なのではないかという疑問

とのことですが、具体的な「実装環境によって動作は異なる」という事例をお持ちであればご提示いただけないでしょうか?


コメント

この返信に対して
コメントを記入できます

2025/09/05 14:06

arashi1977 さん返信ありがとうございます
いま改めてmanコマンドで確認したら見当違いでした!


コメント

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?