Alf*_*lfe 307
如果您使用的是Gnu版本,可以使用该选项-C
(或者--directory
如果您更喜欢长选项)来提供您选择的目标目录tar
.该目录应该存在:
mkdir foo
tar -xzf bar.tar.gz -C foo
Run Code Online (Sandbox Code Playgroud)
如果您没有使用tar
能够解压缩到特定目录,则可以cd
在调用之前简单地进入目标目录tar
; 那么你必须提供一个完整的档案路径,当然.您可以在作用域子shell中执行此操作,以避免影响周围的脚本:
mkdir foo
(cd foo; tar -xzf ../bar.tar.gz) # instead of ../ you can use an absolute path as well
Run Code Online (Sandbox Code Playgroud)
或者,如果绝对路径和归档文件的相对路径都不合适,您也可以使用它来命名范围子shell外的归档:
TARGET_PATH=a/very/complex/path/which/might/even/be/absolute
mkdir -p "$TARGET_PATH"
(cd "$TARGET_PATH"; tar -xzf -) < bar.tar.gz
Run Code Online (Sandbox Code Playgroud)
Mer*_*cer 105
gzip -dc archive.tar.gz | tar -xf - -C /destination
Run Code Online (Sandbox Code Playgroud)
或者,使用GNU tar
tar xzf archive.tar.gz -C /destination
Run Code Online (Sandbox Code Playgroud)