コマンドリファレンス - ファイル群の操作 tar

 クラウディア
1. tar ファイル群の操作
2.  主なオプション
3.  使用例
4.  Linux で使用するならば
5.  特定のファイルを取り出す

1. tar ファイル群の保管

 ファイル群を保管します。  本来は、「tape archiver」の略で、磁気テープにファイルを保管するのが目的で作られたコマンドですが、現在は、バックアップを取っておく時に使用します。

tar [オプション] ファイル名 [ファイル名]

2. 主なオプション

 主なオプションには、以下のものがあります。
オプション 意     味
-c 新しいアーカイブを作成して、指定されたファイルをアーカイブに書込む
-J, --xz アーカイブを xz 形式で圧縮する
-t アーカイブ内容をリスト表示する
-x アーカイブからファイルを抽出する
-v -c でアーカイブに書くファイルや -x でアーカイブから取り出すファイル名をリスト表示する
-y アーカイブを bzip2 で圧縮する
-z アーカイブを gzip で圧縮する
-f 指定されたファイルを読書きする

 「-z」オプションは、「CentOS」では共通でしたが、「Solaris」にはありません。
 「Solaris」では、いったん「.tar」ファイルを作成して、そのファイルを「gzip」や「compress」等で圧縮します。

 「GNU tar」では、「-y」オプションは、「-j」オプションになります。
 「GNU tar」では、展開時に圧縮時と同じオプションを指定しますが、「FreeBSD」では、展開時に圧縮形式を判断してくれます。

3. 使用例

 このコマンドの使用方法を以下に例示しますので、参考にして下さい。

/home/a $ ls -R b
c       d       e
/home/a $ tar -cvzf b.tgz b
b/
b/c
b/d
b/e
/home/a $ ls
b/      b.tgz
/home/a $ tar -tvzf b.tgz
drwxr-xr-x user/user 0   2/ 8 12:21 2002 b/
-rw-r--r-- user/user 0   2/ 8 12:21 2002 b/c
-rw-r--r-- user/user 0   2/ 8 12:21 2002 b/d
-rw-r--r-- user/user 0   2/ 8 12:21 2002 b/e
/home/a $ mv b.tgz ../z
/home/a $ cd ../z
/home/z $ tar -xvzf b.tgz
b/
b/c
b/d
b/e
/home/z $ ls -R b
c       d       e
 おわかりいただけたでしょうか?  一応、書いておくと  ディレクトリ配下を圧縮して、アーカイブを作成(この際「bzip2」で・・・)

tar -cyf ファイル名.tar.bz2 ディレクトリ名
 上記のアーカイブを展開

tar -xyf ファイル名.tar.bz2

4. Linux で使用するならば

 オプションの項で示したように、「Linux」で適度な圧縮をかけてアーカイブを作成するには

tar -cjf xxx.tar ディレクトリ
 展開時は

tar -xjf xxx.tar

5. 特定のファイルを取り出す

 「.tar.gz」から特定のファイルを取り出したかったのです。  以前やっていたのだが、メモし忘れて、すっかり忘れてしまいました。  「特定のファイルを tar.gz から取り出す」で思い出すことができました。ありがとうございます。

tar zfx 取得元ファイル名.tar.gz パス/取得ファイル名
 で、取り出すことができます。

conky-1.12.2.tar.gz
 の中に

conky-1.12.2/extras/vim/syntax/conkyrc.vim
 が、あることは、知っていたのだ。  取り出すには

tar zfx conky-1.12.2.tar.gz conky-1.12.2/extras/vim/syntax/conkyrc.vim
で「conky-1.12.2/...」に「conkyrc.vim」を取り出すことができます。
ハイスピードプラン