unix - 如何将 tar.gz 解压到另一个目录中

标签 unix tar gzip

我有一个存档

*.tar.gz

如何将其解压缩到目标目录中?

最佳答案

如果您使用的是 Gnu,您可以使用选项 -C(如果您喜欢长选项,则使用 --directory)来提供您选择的目标目录tar 的版本。该目录应该存在:

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

如果您没有使用能够解压到特定目录的 tar,您只需在调用 tar 之前 cd 进入目标目录即可>;当然,那么您必须提供存档的完整路径。您可以在作用域子 shell 中执行此操作,以避免影响周围的脚本:

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

或者,如果存档文件的绝对路径和相对路径都不合适,您也可以使用它在作用域子 shell 之外命名存档:

TARGET_PATH=a/very/complex/path/which/might/even/be/absolute
mkdir -p "$TARGET_PATH"
(cd "$TARGET_PATH"; tar -xzf -) < bar.tar.gz

关于unix - 如何将 tar.gz 解压到另一个目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18402395/

相关文章:

unix - 在多线程(带有 pthreads)进程中 fork() 之后,所有可重入函数都可以安全使用吗?

linux - LINUX中CLASSPATH的确定和安装

linux - 对于包含更改文件的目录,可以替代 .tar

perl - 如何将 tar 文件解压到目标目录?

c++ - 如何跳过 tar 文件中的文件以获取特定文件

javascript - GZIP 压缩和缓存我的 JS 和 CSS 文件

java - REST 响应的 GZip 压缩

gzip - 临时解压缩文件的最佳(最 "pythonic")方法

cocoa - 无法将 "path"转换为 real 类型

unix - 使用 grep 查找带括号的字符串