删除前导目录路径后使用 GNU tar 归档文件

删除前导目录路径后使用 GNU tar 归档文件

我想展平并归档以下结构:

├── a
│   └── a.txt
├── ...
│   └── ...
└── z
    └── z.txt

在这个 tar 存档中:

a.txt
...
z.txt

例如,我可以

  1. 将结构展平在某个临时位置,cp然后存档
  2. 迭代创建存档(tar 选项)并每次--append使用--directory
  3. 在提取时压平结构--strip-components

还有其他聪明的主意吗?

答案1

刚刚发现--transform

 File name transformations:

      --strip-components=NUMBER   strip NUMBER leading components from file
                             names on extraction
      --transform=EXPRESSION, --xform=EXPRESSION
                             use sed replace EXPRESSION to transform file
                             names

迷人的:

tar -caf archive.tar.xz --transform 's|.*/\(.*\)|\1|g' $(find . -type f)

答案2

我会将所有内容解压到一个目录中,然后将rsync所有内容放入一个目录中,然后再次将其打包。

相关内容