Help us understand the problem. What is going on with this article?

tarのコマンドの覚え方(´・ω・`)版

More than 1 year has passed since last update.

tarのコマンドの覚え方(´・ω・`)版

(´・ω・`)は最近やっと使えるようになったので,その喜びを噛みしめるためにも.

tarが苦手な理由って,そのオプションの設定が必須なのによくわからないっていうところだと思う.

それぞれの意味をきちんと抑えると実はそんなに難しくない.

これを期によく使う部分だけ簡単に覚えてしまおう.

tarとはなにか

tarは複数のファイルを一つのファイルにまとめるコマンドだ.

例えば次の3つのファイルがある時,

a.txt b.txt c.txt

tarでまとめると,

abc.tar

こんな風に,tarという拡張子のファイルにまとめてくれる.

現在では書庫にしてから圧縮するという二段構成が面倒なので,
tarのオプションで圧縮までできるようになった.

しかし,慣習としてtarしてgzipと言う流れだったから,
拡張子はtar.gzという風に二段構成でつけられる.

もうちょっと詳しいtargzipの関係については一番最後に.

総覧

BNFっぽい記法で書くと大体次を覚えればよい.

オプションに-をつけなくても良い珍しいコマンド.
もちろんつけても大丈V.

tar {c|x|t}{z|j|J|}{v|}f [出力先] [処理対象]

日本語で書くと,それぞれのブラケットは次のような処理に対応している.

tar {何をするか}{圧縮のオプション}{処理を表示}f [出力先] [処理対象]

必須オプション{何をするか}

まず,何をしたいのかを教えてあげよう.

アーカイブを新規に作成したい場合はcオプション(Create)

tar c

書庫から取り出したいときはxオプション(eXtract)

tar x

書庫をテストしたい時はtオプション(Test)

とりあえずこれだけで十分.

他にも
ファイルを追加したいときはAオプション
後ろにファイルを付け加えたいときはrオプション,
ファイルを消したいときは--deleteオプション

圧縮のオプション

圧縮したい場合,あるいは圧縮されているものを回答したい場合はzもしくはJオプションを付ける.

アーカイブだけだとtar

拡張子は.tar.gzと言う風に二段構成にすることが多い.

gzip

gzipであれば(.gzで終わるファイル.)
zオプションをつけよう.

tar cz
tar xz

bzip2

bzip2であれば(.bg2)jオプションをつけよう.

tar cj
tar xj

xz

xzであれば(.xz)Jオプションをつけよう.

tar cJ
tar xJ

よく見るのはtar.gztar.xzかな?

扱うファイルによって使い分けるのがよい.

処理内容表示オプション

また,vオプションを付けると今何をしているのか表示してくれる.

tar czv
tar xzv

出力先オプション

何も指定しないと,磁気テープ上に保存されてしまう.
名前の指定をしないといけない.

名前指定はfオプションで指定してあげよう.

tar czvf [出力先] [処理対象]
tar xzvf [処理対象] [出力]

ちなみに出力先に-を指定すると,標準出力に流してくれる.

パイプで繋げば色々できちゃうよん.

まとめ

ここまで読めば,次のBNFっぽい記法さえ覚えておけば,tarは怖くないと思えるはずだ.

tar {c|x|t}{z|j|J|}{v|}f [出力先] [処理対象]

古いtarで圧縮・解凍したい

古いtarだと圧縮・解凍機能がついていないことがある.

まあ,.tarをつくってgzip,あるいは,gzipしてtarとしてもいいんだけど,ワンライナーでしたいよね.
そんなときは,さっき紹介した標準出力に流す-を使って,

圧縮

tar cvf - [処理対象] | gzip - > [出力先]

解凍

gzip -dc [処理対象] | tar -xvf -

gzipについてちょっとだけ

なんでこんな面倒なことをしないといけないのか.

gzip一つのファイルを圧縮するコマンド.

ディレクトリは圧縮できないのね.

ってことで,tarしてディレクトリをファイルにまとめてから,gzipで圧縮.

参考文献

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away