web-dev-qa-db-ja.com

サブディレクトリを現在のディレクトリに展開するにはどうすればよいですか?

Tarballのサブディレクトリを現在のディレクトリに抽出する方法は?

例、 wordpress からのtarball:

wordpress/
wordpress/wp-trackback.php
wordpress/wp-config-sample.php
wordpress/wp-settings.php
wordpress/wp-rss2.php
wordpress/readme.html
wordpress/index.php
...

wordpress/の下のすべてを現在のディレクトリに抽出するにはどうすればよいですか?言い換えると、wordpressディレクトリは作成されません。

私は運なしでこれを試しました:

tar xvfz latest.tar.gz wordpress -C ./

私はそれを普通に抽出して元に戻すことができることを知っていますが、一度にそれを行う方法が必要だと思います。

51
Cory R. King

なぜ通常どおりに解凍しないのですか?

mv wordpress/.* .
mv wordpress/* .
rmdir wordpress

しかし、悲しいかな、あります:

tar --strip-components=1 -zxvf wordpress.tgz
89
kch

驚いたことに、私のtar(GNU tar v1.16)には、初期パス名要素を削除するオプションがありません。

ただし、最近のバージョンでは--strip-components=numberパラメータが使用されているため、パスの先頭から多くのコンポーネントが削除されます。

私のように古いtarを使用していて、アーカイブにwordpress/wordpressという名前のディレクトリまたはファイルが含まれていないことが確実な場合、常にwordpressからシンボリックリンクを作成できます。 .に追加し、通常どおり抽出します。

ln -s . wordpress
tar xvfz latest.tar.gz wordpress
rm wordpress
6
j_random_hacker