こんな構成のディレクトリbefore
をアーカイブするとします。
$ tree before/
before/
├── one
│ ├── two
│ │ └── three
│ └── two1
└── one1
3 directories, 2 files
$ tar czvf dummy.tgz before
before/
before/one/
before/one/two1
before/one/two/
before/one/two/three/
before/one1
これをafter
という名前で展開します。
$ mkdir after && tar xzvf dummy.tgz -C after --strip-components 1
before/one/
before/one/two1
before/one/two/
before/one/two/three/
before/one1
$ tree after/
after/
├── one
│ ├── two
│ │ └── three
│ └── two1
└── one1
3 directories, 2 files
実現させてくれるオプションのmanualは以下のとおり。
-C, --directory=DIR
change to directory DIR
--strip-components=NUMBER
strip NUMBER leading components from file names on extraction
ちなみに--strip-components
の引数の値を変えてみるとこんな感じです。上位のN階層を「剥ぎとって」くれるようですね。
$ mkdir after2 && tar xzvf dummy.tgz -C after2 --strip-components 2
before/one/two1
before/one/two/
before/one/two/three/
$ tree after2
after2
├── two
│ └── three
└── two1
2 directories, 1 file