我想展平并归档以下结构:
├── a
│ └── a.txt
├── ...
│ └── ...
└── z
└── z.txt
在这个 tar 存档中:
a.txt
...
z.txt
例如,我可以
- 将结构展平在某个临时位置,
cp
然后存档 - 迭代创建存档(tar 选项)并每次
--append
使用--directory
- 在提取时压平结构
--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
所有内容放入一个目录中,然后再次将其打包。