如何解压缩另一个目录中的tar.gz

我有一个档案

与* .tar.gz

我怎样才能解压缩在目的地目录?

如果您使用的是Gnu版本的tar则可以使用选项-C (或者--directory如果您偏好较长的选项)提供您所select的目标目录。 该目录应该存在:

 mkdir foo tar -xzf bar.tar.gz -C foo 

如果您没有使用能够解压到特定目录的tar ,则可以在调用tar之前简单地cd到您的目标目录中; 那么当然,你将不得不给你一个完整的档案path。 你可以在范围的subhell中做这个,以避免影响周围的脚本:

 mkdir foo (cd foo; tar -xzf ../bar.tar.gz) # instead of ../ you can use an absolute path as well 

或者,如果绝对path和归档文件的相对path都不适合,则还可以使用它来命名作用域子shell之外的存档:

 TARGET_PATH=a/very/complex/path/which/might/even/be/absolute mkdir -p "$TARGET_PATH" (cd "$TARGET_PATH"; tar -xzf -) < bar.tar.gz 
 gzip -dc archive.tar.gz | tar -xf - -C /destination 

或者,用GNU tar

 tar xzf archive.tar.gz -C /destination 

myArchive.tar解压/ destinationDirectory

命令:

 cd /destinationDirectory pax -rv -f myArchive.tar -s ',^/,,'