0

ファイル構造を含む指定されたディレクトリから .tar.gz アーカイブを作成する bash スクリプトを作成しています。これは宿題で、学校で使用している Solaris システムで作業するために必要です。つまり、このように tar を使用することはできません

tar xvzf archive.tar.gz ./

これは、このシステムが -z オプションなしで古いバージョンの tar を使用しているためです。こんな感じで使ってます

tar xvf - ./ | gzip > archive.tar.gz

アーカイブの内容を調べると、それ自体が含まれている (つまり、「archive.tar.gz」が含まれている) という奇妙な事実を除いて、正常に動作します。どうすればこれを防ぐことができますか?

4

2 に答える 2

1

これは動作します: tar cvf - | gzip > アーカイブ.tar.gz

于 2014-06-23T14:23:11.380 に答える
0

つまり、コマンドを実行するとすぐに「archive.tar.gz」という名前のファイルが作成されます。つまり、gzip が呼び出される前です。空のファイルですが、ディレクトリにあります。結果のアーカイブに含まれないようにするには、次のいずれかの方法でスクリプトを変更してみてください。

  1. tar xvf - ./ | gzip > ../archive.tar.gz
  2. tar xvf - {path_to_dir_you_want_to_compress_files_from} | gzip > archive.tar.gz

残念ながら、私はどこにも Solaris を持っていないので、このスクリプトのいずれかが機能するかどうかを確認できません。それがうまくいくかどうか教えてください。

于 2013-04-16T19:35:59.957 に答える