順番に読み進めながら学べます

tar — まとめる/展開する

この記事は、基礎コマンドからシェルスクリプトまでLinuxの実践的なスキルを1からマスターする「Linux入門講座の一部」です。
tar -cf docs.tar docsで複数ファイルを1つの非圧縮アーカイブにまとめ、tar -tf docs.tarで中身を一覧し、tar -xfで元に戻す手順を、図解とブラウザ端末で実際に手を動かして確認します。

まとめて一覧する — tar -cf / tar -tf

tarは複数のファイルやディレクトリを 1 つのファイルにまとめるコマンドです。まとめた 1 つのファイルをtarアーカイブと呼び、慣習として.tarという名前を付けます。tar -cf まとめ先.tar 対象でまとめ、tar -tf まとめ先.tarで中身を一覧して確認します。-cは作成(create)、-tは一覧(list)、-fはファイル名の指定です。

書き方効果
tar -cf a.tar dirdirを 1 つのa.tarにまとめる
tar -tf a.tara.tarの中身(含まれるファイル)を一覧する
tar -xf a.tara.tarを展開して元のファイルに戻す
tar -xf a.tar -C 先展開先のディレクトリをに指定する
tar -cf でまとめ -tf で一覧する
d/a.txtd/b.txtd/(まとめる対象)tar -cf d.tar dd.tar(1 つにまとまる)配布・保管に便利tar -tf d.tard/a.txtd/b.txt中身を確認-c で作成-t で一覧
tar -cf d.tar ddd.tarに 1 つへまとめ、tar -tf d.tarで含まれるファイルを取り出さずに一覧します。
mkdir -p docs                 # 素材ディレクトリを作成
printf 'note A\n' > docs/a.txt   # 中にファイルを 2 つ
printf 'note B\n' > docs/b.txt
tar -cf docs.tar docs         # docs を docs.tar にまとめる
tar -tf docs.tar              # docs/ docs/a.txt docs/b.txt を一覧
# 本番サーバーでは tar -czf docs.tar.gz docs で gzip 圧縮もまとめてできます(この学習環境では非圧縮のみ)

本講座は非圧縮 tar で仕組みを確実に学びます

tar -czfなどの gzip 圧縮は Ubuntu などの本番サーバーで使えます。本講座は非圧縮の-cf / -tf / -xfで tar の仕組みを確実に学びます(この学習環境では圧縮は実行しないでください)。

mkdir -p docsで素材ディレクトリを作成してください。

printf 'note A\n' > docs/a.txtprintf 'note B\n' > docs/b.txtで中にファイルを 2 つ作成してください。

tarの作成オプションでdocsdocs.tarという 1 つのファイルにまとめてください。(まとめる操作は実行しても画面には何も表示されません)

lsを実行してdocs.tarができたことを確認してください。

tarの一覧オプションでdocs.tarの中身を一覧し、docs/a.txtdocs/b.txtが含まれていることを確認してください。(正しく実行できれば解説が表示されます)

Linux console
0 / 6 実行済み
Loading Linux Terminal...

展開する — tar -xf と -C

まとめたtarアーカイブから元のファイルを取り出すにはtar -xf アーカイブ.tarを使います。-xは展開(extract)です。そのまま実行するとカレントディレクトリに展開されますが、-C 展開先を付けると指定したディレクトリの中に取り出せます。展開後はlsで取り出されたファイルを確認します。

tar -xf で展開する(-C で先を指定)
docs.tar中身docs/a.txt 他これを取り出すtar -xf docs.tar展開先の指定なしカレントに docs/tar -xf docs.tar-C out-C で展開先を指定out/ の中に docs/そのまま展開out へ展開
tar -xf docs.tarはカレントに展開、tar -xf docs.tar -C outoutの中に展開先を指定して取り出します。
mkdir -p pack                 # 素材ディレクトリを作成
printf 'x\n' > pack/a.txt        # 中にファイルを用意
tar -cf pack.tar pack         # pack を pack.tar にまとめる
mkdir -p out                  # 展開先を用意
tar -xf pack.tar -C out       # out/ の中に展開
ls out                        # out/pack が取り出されている

mkdir -p packで素材ディレクトリを作成し、printf 'x\n' > pack/a.txtで中にファイルを 1 つ作成してください。

tarの作成オプションでpackpack.tarにまとめてください。

lsを実行してpack.tarができたことを確認してください。

mkdir -p outで展開先ディレクトリを用意してください。

tarの展開オプションに展開先を指定するオプションを付けてpack.taroutの中に展開してください。

ls outoutの中にpackが取り出されたことを確認してください。

Linux console
0 / 7 実行済み
Loading Linux Terminal...
QUIZ

理解度チェック

まずは1問ずつ答えてみましょう。

Q1tar -cf docs.tar docsを実行すると何が起こりますか?

Q2tarでまとめたdocs.tarの中身を取り出さずに一覧するコマンドはどれですか?

Q3tar -xf pack.tar -C out-C outは何を指定しますか?