如何仅提取文件而不从 tar.gz 文件创建目录路径?

如何仅提取文件而不从 tar.gz 文件创建目录路径?

我有一个tar.gz文件,我必须从中提取当前目录中的文件,而不创建整个结构。

例如

tar.gz包含以下文件,

/u01/app/oracle/file1
..
..
/u01/app/oracle/file10
/u01/testdata/file1
..
..
/u01/testdata/file5

存在tar.gz/u02.因此,当提取时,我想file1通过file10进入/u02,整个目录结构是在下面创建的/u02

答案1

由于您似乎有固定数量的路径组件,因此通过--条带组件=3tar解压/u01/app/oracle时删除/u02

对于可变数量的组件,请改用该--transform标志。类似的东西--transform='s,^\([^/][^/]*/\)\+,,'

答案2

使用标准pax命令:

gunzip < file.tar.gz | pax -r's|.*/||p'

相关内容