tarのコマンドの覚え方(´・ω・`)版
(´・ω・`)は最近やっと使えるようになったので,その喜びを噛みしめるためにも.
tarが苦手な理由って,そのオプションの設定が必須なのによくわからないっていうところだと思う.
それぞれの意味をきちんと抑えると実はそんなに難しくない.
これを期によく使う部分だけ簡単に覚えてしまおう.
tarとはなにか
tar
は複数のファイルを一つのファイルにまとめるコマンドだ.
例えば次の3つのファイルがある時,
a.txt b.txt c.txt
tar
でまとめると,
abc.tar
こんな風に,tar
という拡張子のファイルにまとめてくれる.
現在では書庫にしてから圧縮するという二段構成が面倒なので,
tar
のオプションで圧縮までできるようになった.
しかし,慣習としてtar
してgzip
と言う流れだったから,
拡張子はtar.gz
という風に二段構成でつけられる.
もうちょっと詳しいtar
とgzip
の関係については一番最後に.
総覧
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.gz
かtar.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
で圧縮.