アプリ版:「スタンプのみでお礼する」機能のリリースについて

ワークステーションで作業してます。
バックアップをとったり、ftpするときによく
tarしてgzipするのですが、tarからgzipって"|(パイプ)"で
単純につなげないのでいつも、コマンドを一つずつ実行するので
大きな中間ファイルができてしまいます。

中間ファイルを作らずにtar/gzipが一括で行えるコマンドの記述を
知ってる方、是非教えて下さい。ちなみに解凍方法も・・・

A 回答 (8件)

No.5 補足への回答です。


逆(解凍)は、以下のようにすればできます。
  gzip -dc xxxxx.tar.gz | tar xf -
  (gzip -dc の代わりに gunzip -c または zcat でも可)

同じように、「xf -」とは「tar の入力を標準入力から得る」ための指定です。

どうも tar コマンドについて体系的に理解されてないようなので、一度
man tar をじっくり読まれてはいかがですか?
(他にも p とか m とか関連オプションがあるのですが、ここでは省略します)
    • good
    • 0
この回答へのお礼

再度、解説有難う御座います。

大変役に立ちました。
今度、manでじっくり見てみます。

お礼日時:2001/07/27 17:57

NO.4の補足です。


「p」オプションですが、圧縮する時には必要ありませんでした。(_O_)
解凍する時に、「p」オプションを付けると、圧縮時のパーミッション
情報、ユーザー情報などをそのままで解凍します。
man tar に書いてありますので、読んでみて下さい。

で、OSがSolarisと言うことで、現在使っているSolarisマシンで調べたところ、GNU の tarを入れていました。
もし、インストールする場合は、適当なFTPサーバから、GNU tar を取ってきて

# zcat tar-1.13.tar.gz | tar xvf -
# cd tar-1.13/
# ./configure
# make
# make install

とすれば、OKです。CPUパワーにもよりますが、時間的には、3分位でできる
と思います。また、/bin/tar と区別したければ、

# mv /usr/local/bin/tar /usr/local/bin/gtar

とすればOKだと思います。
私は、逆に、/bin/tarを/usr/local/bin/tarにシンボリックリンクしちゃっています。(^^;;
    • good
    • 0
この回答へのお礼

再度、解説有難う御座いました。

とりあえずysk6406さんの方法でできましたので
時間があるときにGNUをインストールしてみたいと思います。

お礼日時:2001/07/27 18:00

naturalです。


補足有り難うございます。
zオプションはGNUのtarで使えますのでGNU tarを入れる必要があります。
ダウンロード先が判らなかったので明記できませんが、Solaris2.6に対応したバージョンが有るはずです。
尚、そこまでするのは面倒、という場合はysk6406さんの仰っている方法でなさった方が手っ取り早いですね。
    • good
    • 0
この回答へのお礼

再度、解説有難う御座いました。

お礼日時:2001/07/27 17:55

まず、「tarからgzipって"|(パイプ)"で単純につなげない」ことはありません。


単に、tar cf - (取りたい場所) | gzip > xxxxx.tar.gz とすればOKです。
(私のところでは、昔からこのやり方で tar→gzip しています。)

一応解説しますと、「tar cf -」というのは「tar の出力を、ファイルではなく
標準出力に流せ」という指定です。

また、ワークステーションということで UNIX を使っているという前提で言えば、
パイプで繋いだコマンドは一つずつではなく同時に実行され、その間はメモリ経由で
データが渡されるので、中間ファイルが作られることはありません。

この回答への補足

有難う御座います。

"tar cf - (取りたい場所) | gzip > xxxxx.tar.gz "
でできました。

"-"の存在を知れたのがとても嬉しいです。
で、申し分け無いのですがこの逆の
一括解凍も教えて頂けないでしょうか?

宜しくお願いします。

補足日時:2001/07/27 12:54
    • good
    • 1

ワークステーションと言うことで、OSが何か??解りませんが、


GNUのtarを使っているのでしたら・・・

tar cvfpz 圧縮ファイル名 圧縮するファイル名

ex.
# tar cvfpz hogehoge.tgz hogehoge

で出来ます。一度、man tar してみたらどうでしょうか??

この回答への補足

有難う御座います。

初心者でGNUというのがよく分かりません。
私のOS:Solalis2.6はそれに含まれるのでしょうか?

ちなみに、manでtarを調べても"zオプション"
らしきものは見当たりませんでした。

また、オプションpは何を意味するのでしょう?
ご教授願います。

補足日時:2001/07/27 12:52
    • good
    • 0

GNU tarであればzオプションがあります。

この回答への補足

有難う御座います。

初心者でGNUというのがよく分かりません。
私のOS:Solalis2.6はそれに含まれるのでしょうか?

ちなみに、manでtarを調べても"zオプション"
らしきものは見当たりませんでした。

新たに、情報ありましたらご教授願います。

補足日時:2001/07/27 12:46
    • good
    • 0

>「回答」→「解凍」



です。(^_^;
恥ずかしー。(#^_^#)

そうそう、私が的を外しているかもしれないと思ったのはOSが明記されていないためです。
出来るだけ早く正解を得たいのなら環境等は明記した方が良いですよ。
    • good
    • 0

tar -cvzf 圧縮ファイル名 対象ファイル名 ・・・



では駄目でしょうか?
-cvzfが駄目だったら「-」を外してやってみてください。
尚、上記の「圧縮ファイル名」は圧縮後のファイルの名前、「対象ファイル名 ・・・」は圧縮するファイルのリストです。
逆に回答するときは「xvzf」オプションを使用します。

この回答への補足

有難う御座います。
私の環境はUNIX(Solalis2.6)です。

よく分かりませんが、オプションに"z"がないみたいです。
"z"って無いこともあるんですかねぇ~?

ご存知でしたら、ご教授ください。

補足日時:2001/07/27 12:41
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!