- ベストアンサー
tar->gzipの中間ファイル未作成方法ってあります?
ワークステーションで作業してます。 バックアップをとったり、ftpするときによく tarしてgzipするのですが、tarからgzipって"|(パイプ)"で 単純につなげないのでいつも、コマンドを一つずつ実行するので 大きな中間ファイルができてしまいます。 中間ファイルを作らずにtar/gzipが一括で行えるコマンドの記述を 知ってる方、是非教えて下さい。ちなみに解凍方法も・・・
- lts107
- お礼率61% (92/150)
- Solaris系OS
- 回答数8
- ありがとう数6
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
No.5 補足への回答です。 逆(解凍)は、以下のようにすればできます。 gzip -dc xxxxx.tar.gz | tar xf - (gzip -dc の代わりに gunzip -c または zcat でも可) 同じように、「xf -」とは「tar の入力を標準入力から得る」ための指定です。 どうも tar コマンドについて体系的に理解されてないようなので、一度 man tar をじっくり読まれてはいかがですか? (他にも p とか m とか関連オプションがあるのですが、ここでは省略します)
その他の回答 (7)
- beatkun
- ベストアンサー率46% (7/15)
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にシンボリックリンクしちゃっています。(^^;;
お礼
再度、解説有難う御座いました。 とりあえずysk6406さんの方法でできましたので 時間があるときにGNUをインストールしてみたいと思います。
- natural
- ベストアンサー率37% (419/1115)
naturalです。 補足有り難うございます。 zオプションはGNUのtarで使えますのでGNU tarを入れる必要があります。 ダウンロード先が判らなかったので明記できませんが、Solaris2.6に対応したバージョンが有るはずです。 尚、そこまでするのは面倒、という場合はysk6406さんの仰っている方法でなさった方が手っ取り早いですね。
お礼
再度、解説有難う御座いました。
- ysk6406
- ベストアンサー率40% (237/589)
まず、「tarからgzipって"|(パイプ)"で単純につなげない」ことはありません。 単に、tar cf - (取りたい場所) | gzip > xxxxx.tar.gz とすればOKです。 (私のところでは、昔からこのやり方で tar→gzip しています。) 一応解説しますと、「tar cf -」というのは「tar の出力を、ファイルではなく 標準出力に流せ」という指定です。 また、ワークステーションということで UNIX を使っているという前提で言えば、 パイプで繋いだコマンドは一つずつではなく同時に実行され、その間はメモリ経由で データが渡されるので、中間ファイルが作られることはありません。
補足
有難う御座います。 "tar cf - (取りたい場所) | gzip > xxxxx.tar.gz " でできました。 "-"の存在を知れたのがとても嬉しいです。 で、申し分け無いのですがこの逆の 一括解凍も教えて頂けないでしょうか? 宜しくお願いします。
- beatkun
- ベストアンサー率46% (7/15)
ワークステーションと言うことで、OSが何か??解りませんが、 GNUのtarを使っているのでしたら・・・ tar cvfpz 圧縮ファイル名 圧縮するファイル名 ex. # tar cvfpz hogehoge.tgz hogehoge で出来ます。一度、man tar してみたらどうでしょうか??
補足
有難う御座います。 初心者でGNUというのがよく分かりません。 私のOS:Solalis2.6はそれに含まれるのでしょうか? ちなみに、manでtarを調べても"zオプション" らしきものは見当たりませんでした。 また、オプションpは何を意味するのでしょう? ご教授願います。
- selenity
- ベストアンサー率41% (324/772)
GNU tarであればzオプションがあります。
補足
有難う御座います。 初心者でGNUというのがよく分かりません。 私のOS:Solalis2.6はそれに含まれるのでしょうか? ちなみに、manでtarを調べても"zオプション" らしきものは見当たりませんでした。 新たに、情報ありましたらご教授願います。
- natural
- ベストアンサー率37% (419/1115)
>「回答」→「解凍」 です。(^_^; 恥ずかしー。(#^_^#) そうそう、私が的を外しているかもしれないと思ったのはOSが明記されていないためです。 出来るだけ早く正解を得たいのなら環境等は明記した方が良いですよ。
- natural
- ベストアンサー率37% (419/1115)
tar -cvzf 圧縮ファイル名 対象ファイル名 ・・・ では駄目でしょうか? -cvzfが駄目だったら「-」を外してやってみてください。 尚、上記の「圧縮ファイル名」は圧縮後のファイルの名前、「対象ファイル名 ・・・」は圧縮するファイルのリストです。 逆に回答するときは「xvzf」オプションを使用します。
補足
有難う御座います。 私の環境はUNIX(Solalis2.6)です。 よく分かりませんが、オプションに"z"がないみたいです。 "z"って無いこともあるんですかねぇ~? ご存知でしたら、ご教授ください。
関連するQ&A
- tar圧縮ファイルが作成できず困っています。
tarとgzipをパイプでつなげて使用すると、tar圧縮ファイルが正常に 作成できず困っています。(Solaris) *やりたいこと* ファイル一覧test.txtに記載されているファイルを一度に tar圧縮したい。(tar・gzip別々でなく) *コマンドライン* # tar cvfp - -I test.txt | gzip -c > test.tar.gz a aaa.txt 1K a bbb.txt 1K a ccc.txt 1K # ls -l test.tar.gz(←とりあえずファイルは作られている) -rw-r--r-- 1 root other 33235 5月 12日 10:03 test.tar.gz # gunzip test.tar.gz(←unzipもできる) gunzip: /usr/bin/gzip has 2 other links -- unchanged # ls -l test.tar -rw-r--r-- 1 root other 64076 5月 12日 10:03 test.tar # file test.tar(←この時点でおかしい。file種別がアーカイブじゃない) test.tar: ELF 32-ビット MSB 実行可能 SPARC バージョン 1[動的にリンクされています][取り除かれています] # tar xvfp test.tar(←エラーになる) tar: ディレクトリの検査合計エラーです。 # /bin/tar xvfp test.tar(←違うtarでやってみるとエラーがでる) tar: This does not look like a tar archive tar: Skipping to next header tar: Archive contains obsolescent base-64 headers tar: Read 2636 bytes from test.tar tar: Error exit delayed from previous errors 上記のような現象になって困っています。パイプ以降をcompressに するとふつうにいけるので、gzipがおかしいような気もするのですが。 サイトを検索するとみなさんGNUのgtarをお勧めしているようですが そちらもだめでした。 どなたか解決策をご存知の方がいたらご教授願います。
- 締切済み
- Solaris系OS
- tar.gzファイルの解凍
FreeBSDを使用しています。 ダウンロードした AAA.tar.gz というファイルを解凍したいのですが、 gunzip AAA.tar.gz とすると、 gunzip: AAA.tar.gz: not in gzip format と出ます。 そこで、 file AAA.tar.gz とすると、 AAA.gz: GNU tar archive と出ました。 ですので、 tar xzvf AAA.tar.gz としてみましたが、以下のように出ます。 gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error exit delayed from previous errors どのようにして解凍すればよいのかご教授いただけませんでしょうか?よろしくお願いいたします。
- ベストアンサー
- BSD系OS
- *.tar.gzのファイルをダウンロードすると*.tar.tarになってしまいます。
インターネット上のあるサイトから、*.tar.gzという拡張子のファイルをインターネットエクスプローラーからダウンロードしようすると、ファイル保存のダイアログで「*.tar.tar」というファイル名になってしまいます。 ダウンロードの際、しくは、ダウンロードしたあとに、「*.tar.gz」に名前を変えれば、gzipで解凍して、tarコマンドで分解できるのですが、なんで拡張子が変わっちゃうかわかりません。 私の周りのパソコンを見ると、こうなるPCもあれば、ならないPCもあります。 確認したPCは全部WindowsXPで、SP1もSP2もありますが、SP1だから、とか、SP2だからということはありません。 世の中的には、どうもこれは当たり前?の事象のようで、メーカーサイトのダウンロードページなどには、ダウンロードの際の注意書きとして、このような事象があることが書いている場合がありました。 ということはしょうがないのかなとも思うのですが、対処方法とかあるのなら知りたいと思い、質問させていただきました。 ご存知の方、いらっしゃいましたらよろしくお願いいたします。
- ベストアンサー
- Windows系OS
- tarコマンドの圧縮
こんにちは。 3ファイルある、ディレクトリ(test)を、tarコマンドでまとめて、 gzipコマンドにて圧縮しました。 そのあと、gzcatコマンドにて、展開して結果をファイルに おとして見たところ、余計なものが付加されます。 見たところ、ディレクトリ名が付加されている感じに、なっており、 出さないようにする方法があれば、教えてください。 【構成】 OS:HP-UX ディレクトリ:test ファイル:test1(中身は,yuuuuuu 1行のみ) test2(中身は,xxxxxxx 1行のみ) test3(中身は,zzzzzzz 1行のみ) 【圧縮】 1・tarコマンド (tar cvf test.tar test/) 2.gzipコマンド(gzip test.tar) 【解凍】 1.gzcatコマンド(gzcat test.tar.gz > list) 【結果】 1.catコマンド(cat list) test/0040750000000000000000000104357767601770ustar00rootsys0000test/test1000644100000000000000013104364453400126510ustar00rootsys00000000000yuuuuuu test/test200644000000013104364453400126510ustar00rootsys000000000xxxxxxx test/test300644000000013104364453400126510ustar00rootsys000000000zzzzzzz
- ベストアンサー
- BSD系OS
- コマンドtar のオプションについて
コマンド tar のオプションについて下記のようになっています。 -z gzipを通して圧縮/解凍する -j bzip2を通して圧縮/解凍する -z と-j は何の省略でしょうか? または何か良い覚え方があれば教えて頂けると嬉しいです。 よろしくお願いします。
- ベストアンサー
- Linux系OS
- Rubyを使っての tar.gz ファイルの解凍
いつも、お世話になります。 今現在、cygwin環境下で、tar.gzファイルを解凍しています。 コマンドとしては、 gunzip -d xxxx.tar.gz tar -xvf xxxx.tar これを、Rubyを使って、やりたいと考えています。 方法は、あるのでしょうか? 元々、UNIX環境下で作成されたデータを、PC上のcygwinで解凍、ついでに テキスト処理(shellscript+perl)も実施しております。 gzファイル、tarを解くexeは、きっとどこかにあると思いますので、 rubyに期待するのは、外部コマンドとしての exeを実行できることです。 宜しく、サジェスチョンをお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- tar.gzファイルが解凍できない
さくらのレンタルサーバでCakePHPを動かそうとしています。 http://www.cafechantant.com/blog/2007/09/17/%E3%81%95%E3%81%8F%E3%82%89%E3%81%A7-cakephp/ こちらのサイトを参考にさせていただいて、wgetでcake_1.1.17.5612.tar.gzをダウンロードするところまでできました。 %tar zxvf cake_1.1.17.5612.tar.gz とすると Unrecognized archive format: Inappropriate file type or format と出ます。 %gzip -d ./cake_1.1.17.5612.tar.gz とすると、 %gzip: ./cake_1.1.17.5612.tar.gz: not in gzip format と出ます。どうすれば解凍できるでしょうか。
- ベストアンサー
- BSD系OS
- tar.gzファイルのリストアについて
Postgres初心者です。 教えてください。 pg_dumpコマンドでdump拡張しのバックアップファイルを生成し、 tarコマンドで****.tar.gzファイルに圧縮しました。 このtar.gzのファイルを直接リストアするコマンドがあれば 教えていただけないでしょうか? -bash-3.2$pg_restore -U postgres -d (データベース名) < ****.tar.gz と実行すると、以下のエラーメッセージが表示されます。 →pg_restore: [アーカイバ] 入力ファイルが有効なアーカイブではないようです。 -bash-3.2$gunzip -C ****.tar.gz | pg_restore -d (データベース名) と実行すると、以下のエラーメッセージが表示されます。 →pg_restore: [tarアーカイバ] tarアーカイブ内でファイルtoc.dat用のファイルヘッダがありませんでした よろしくお願い致します。
- ベストアンサー
- PostgreSQL
- dosコマンドでtarの解凍方法
tar.gzのファイルをコマンドで解凍したいのですがエラーが表示され 解凍できません。 コマンドでの解凍は初めてなもので調べてみたのですが全くわからずで どうしたら解凍できるようになるか是非ご教授下さい!>< 解凍のコマンドを入力しエンターを押すと以下のエラーが表示されます。 'tar' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 これはどうすれば解決できるのでしょうか? 何卒宜しくお願い致します。
- 締切済み
- Windows XP
お礼
再度、解説有難う御座います。 大変役に立ちました。 今度、manでじっくり見てみます。