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 ./
私はそれを普通に抽出して元に戻すことができることを知っていますが、一度にそれを行う方法が必要だと思います。
なぜ通常どおりに解凍しないのですか?
mv wordpress/.* .
mv wordpress/* .
rmdir wordpress
しかし、悲しいかな、あります:
tar --strip-components=1 -zxvf wordpress.tgz
驚いたことに、私のtar
(GNU tar v1.16)には、初期パス名要素を削除するオプションがありません。
ただし、最近のバージョンでは--strip-components=number
パラメータが使用されているため、パスの先頭から多くのコンポーネントが削除されます。
私のように古いtar
を使用していて、アーカイブにwordpress/wordpress
という名前のディレクトリまたはファイルが含まれていないことが確実な場合、常にwordpress
からシンボリックリンクを作成できます。 .
に追加し、通常どおり抽出します。
ln -s . wordpress
tar xvfz latest.tar.gz wordpress
rm wordpress