tar ball を渡されて困る。
毎回毎回展開するのダルいんだよ。欲しいファイルや見たいファイルは一つだけ、もしくは複数ファイルだったりする
tar tvzf で中身を見る
tar で中身を見るには tvf ・ tvzf を使う z は gzip。
tar tvzf test.tgz drwxr-xr-x takuya/staff 0 2016-07-25 19:59 テスト/ -rw-r--r-- takuya/staff 0 2016-07-25 19:59 テスト/テスト1 -rw-r--r-- takuya/staff 0 2016-07-25 19:59 テスト/テスト2 -rw-r--r-- takuya/staff 0 2016-07-25 19:59 テスト/テスト3 -rw-r--r-- takuya/staff 0 2016-07-25 19:59 テスト/テスト4 -rw-r--r-- takuya/staff 0 2016-07-25 19:59 テスト/テスト5 -rw-r--r-- takuya/staff 0 2016-07-25 19:59 テスト/テスト6 -rw-r--r-- takuya/staff 0 2016-07-25 19:59 テスト/テスト7 -rw-r--r-- takuya/staff 0 2016-07-25 19:59 テスト/テスト8 -rw-r--r-- takuya/staff 0 2016-07-25 19:59 テスト/テスト9
指定したファイルを取出す
tar x -f test.tgz 'テスト/テスト1'
この方法で取出すことが一般的であると思う。でも、この方法ではファイルだけでなく、フォルダ構造も再現さしてくれる。ファイルだけ中身を見たい時にちょっと不便だと思う。
指定したファイルを取出す。標準出力へ。
指定したファイルを取出す。
tar x -f test.tgz 'テスト/テスト1' -O
tar には -O というオプションが合って、コレを使えば、指定したファイルを標準出力に取り出すことが出来る。マジか便利だ。
指定したファイルに取出す
ディレクトリ構造を作られるのがめんどうなので、標準出力をリダイレクトすることで、指定したファイルに取出すことが出来る。
tar x -f test.tgz 'テスト/テスト1.jpg' -O out.jpg
これで、tar ファイルの取扱が数段楽ちんになる。
ファイルの中身をみて、その結果をパパッ取り出せるなら、イチイチ展開してcd てたどっていくの面倒だし、作業用ディレクトリを作るの面倒なんだよね。
指定したフォルダへ展開
最初にフォルダを作るのが必須
mkdir 04-25 tar xf etc-2023-04-25.tgz -C 04-25
指定したファイルを指定したフォルダへ( オプション -C 版)
-C
を使った場合の例
mkdir 04-25 tar xf etc-2023-04-25.tgz /etc/pam.d/common-auth -C 04-25
これで動くはずなんだが。ディレクトリの場合はなぜか動かない。
寸感
参考資料にあるように GNU tar での動作を確認しています。
私は、GPL信者なのでGNU tarを利用しているので、コレで動かすことが出来ました。
BSDのtar のman を見ても出来るようなので、大丈夫でしょう
っていうか tar ってgnu tar 以外にあるんだろうか。。。
参考資料
https://www.gnu.org/software/tar/manual/html_node/Writing-to-Standard-Output.html