Bash在Solaris上创建.tar.gz

时间:2013-04-16 19:20:35

标签: bash gzip solaris archive tar

我正在编写一个bash脚本,它应该从指定的目录创建一个.tar.gz存档,包括文件结构。这是一个功课,我需要它在我学校使用的Solaris系统上工作。这意味着我不能像这样使用tar

tar xvzf archive.tar.gz ./

因为此系统使用某些较旧版本的tar而不使用-z选项。我像这样使用它

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

除了一个奇怪的事实,它工作正常,当我检查存档的内容时,它包含自身(换句话说,它包含“archive.tar.gz”)。我该如何防止这种情况?

2 个答案:

答案 0 :(得分:1)

这有效:     tar cvf - | gzip> archive.tar.gz

答案 1 :(得分: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
  3. 可悲的是,我无法检查这些脚本是否有效,因为我在任何地方都没有Solaris。如果有的话,请告诉我。