次のコマンドを使用してフォルダーをアーカイブしています:
tar jcf "home/username/forum/forum.tar.bz2" /var/www/forum/
次に、次を使用して抽出しています:
tar jxf forum.tar.bz2 ./
正しく抽出されますが、/home/username/forum/var/www/forum
フォルダーが作成されます。 /home/username/forum
フォルダーに抽出するには何をする必要がありますか?
ありがとうございました
アーカイブを作成するときは、-C /var/www/
を使用して、アーカイブの作成中に現在のディレクトリを/ var/wwwに変更します。
tar jcf home/username/forum/forum.tar.bz2 -C /var/www/ forum
これにより、「forum」フォルダーがアーカイブの最上位になり、実行時に現在のフォルダーに直接抽出されます。
tar jxf forum.tar.bz2 ./
dv3500ea's answer に加えて、次のコマンドを使用して、var/www/forum/
からforum/
を含むtarballを抽出できます。
tar xjf forum.tar.bz2 --strip-components=2
var/
とwww/
は2つのパスコンポーネントであるため、2
の--strip-components
です。
Tarballの内容がわからない場合は、t
オプションを使用します。
tar tjf forum.tar.bz2
less
にパイプして、スクロールに矢印キーを使用します。
使用されるオプションに関する一般的な注意:
x
-tarballを抽出します。コマンドの動作を確認するのが最も論理的であるため、常に最初のオプションとして配置しますc
-tarballを作成しますt
-tarballの内容をリストしますj
-tarでbzip2圧縮tarballを解凍します。これは.bz2
拡張機能と重複するため、このオプションも削除できます。f
-このオプションは、引数としてファイル名を必要とします。これは、抽出されるtarball(tar xf file.tar.bz2
)または作成される(tar cf file.tar.bz2
)です。高速な(そしておそらく間違った)解決策は、tarする前にコマンドを変更してディレクトリを変更することです。 IE:
cd /var/www/forum; tar jcf "home/username/forum/forum.tar.bz2" .