次の構造を平らにして保管したいです。
├── 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
すべてをディレクトリに入れてから再パッケージしました。