如何在类似Linux/Unix的系统上将Tar文件提取到其他目录

时间:2020-01-09 10:40:12  来源:igfitidea点击:

如何将tar文件解压缩到名为/tmp/data的特定目录。
如何在Linux或类似Unix的系统上使用tar命令将tar存档提取到其他目录?
您无需使用cd命令更改目录并解压缩文件。
本教程说明如何使用tar命令将tar归档文件提取到Linux/Unix系统上的其他目录。

Tar命令将Tar文件提取到其他目录的语法

可以使用以下语法来解压缩文件。
典型的Unix tar语法:

tar -xf file.name.tar -C /path/to/directory

GNU/tar Linux语法:

tar xf file.tar -C /path/to/directory

或者

tar xf file.tar --directory /path/to/directory

提取.tar.gz文件:

tar -zxf file.tar --directory /path/to/directory

提取.tar.bz2/.tar.zx存档:

tar -jxf file.tar --directory /path/to/directory

其中:

  • x:提取文件
  • f:Tar档案名称
  • --directory:设置目录名称以提取文件
  • -C:设置目录名称以提取文件
  • -j:处理.tar.gz文件格式
  • -z:处理.tar.bz2文件格式
  • -v:详细输出,即在屏幕上显示进度

示例:将文件提取到另一个目录

在此示例中,我将$HOME/etc.backup.tar文件提取到名为/tmp/data的目录中。
首先,您必须手动创建目录,执行:

mkdir /tmp/data

要将tar存档$HOME/etc.backup.tar提取到/tmp/data中,请执行:

tar -xf $HOME/etc.backup.tar -C /tmp/data

要查看进度,请通过-v选项:

tar -xvf $HOME/etc.backup.tar -C /tmp/data

示例输出:Gif 01:tar命令将存档提取到其他目录命令

从tar存档中仅提取特定文件

您也可以提取特定文件:

## extract only file1, file2, file3
## and dir1 to /tmp/data/ 
tar -xvf $HOME/etc.backup.tar file1 file2 file3 dir1 -C /tmp/data

将.tar.gz/.tgz存档解压缩到特定文件夹

要将foo.tar.gz(.tgz扩展文件)tar包解压缩到/tmp/bar,请执行:

mkdir /tmp/foo
tar -zxvf foo.tar.gz -C /tmp/foo

将.tar.bz2/.tbz2/.tb2/.tar.xz存档解压缩到特定目录

要将foo.tar.bz2(.tbz,.tbz2和.tb2扩展文件)压缩包解压缩到/tmp/bar,请执行:

mkdir /tmp/bar
tar -jxvf bar.tar.bz2  -C /tmp/bar

输出示例:

etc/adduser.conf
etc/apg.conf
etc/appstream.conf
etc/brltty.conf
etc/ca-certificates.conf
etc/debconf.conf
etc/deluser.conf
etc/fuse.conf
etc/fwupd.conf
etc/gai.conf
etc/hdparm.conf
etc/host.conf
etc/kernel-img.conf
etc/kerneloops.conf