如何从tar中提取单个文件到不同的目录?

Men*_*ngT 63 unix tar

我知道我可以使用以下命令将单个文件解压缩到当前工作目录(假设我有一个名为test.tar的tar文件,并且其中包含一个名为testfile1和testfile2的文件):

$tar xvf test.tar testfile1
Run Code Online (Sandbox Code Playgroud)

我可以使用-C选项将文件提取到另一个目录:

$tar xvf test.tar -C anotherDirectory/
Run Code Online (Sandbox Code Playgroud)

当我将上述两种技术结合在一起时,我想我可以将一个文件提取到另一个目录中.

$ tar xvf test.tar testfile1 -C anotherDirectory/
Run Code Online (Sandbox Code Playgroud)

但结果是我只能将testfile1提取到当前工作目录,而不是另一个目录.

我想知道如何从tar中提取单个文件到另一个目录?

Kim*_*ais 88

问题是您的参数的顺序不正确.单个文件参数必须是最后一个.

例如

$ tar xvf test.tar -C anotherDirectory/ testfile1
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩.

PS:您应该在超级用户而不是SO 上提出这个问题

  • 如果你不想包含目录名,请使用`--strip-components`,这里有一个提取为`bin/helm`的例子:`tar xf helm-v2.9.1-linux-amd64.tar.gz - strip-components = 1-bin/linux-amd64/helm` (5认同)