如何解压没有根文件夹的档案,但保留其中的完整层次结构?

如何解压没有根文件夹的档案,但保留其中的完整层次结构?

如果我有一个.tar档案,当我提取它时,它会给我一个foo包含更多内容的文件夹,如下所示:

foo/
  something.txt
  another.txt
  bar/
    something-else.txt

有没有办法可以修改命令.tar以“跳过”根文件夹(foo在本例中)并将该文件夹的所有内容直接提取到我的 cwd 中,如下所示:

something.txt
another.txt
bar/
  something-else.txt

答案1

--strip-components=1很简单。只需像这样在档案上使用:

tar -xf archive.tar --strip-components=1

正如官方解释的那样tar手册页:

--strip-components=NUMBER

提取时从文件名中删除 NUMBER 个前导组件

逻辑是,如果一条路径由组成,foo/something.txt那么该路径的第一个“组成部分”将是,foo/因此会有效地从路径中--strip-components=1删除。foo/foo/something.txt

相关内容