次のコマンドを使用してフォルダーをアーカイブしています:
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
?
ありがとう
答え1
に加えてdv3500eaの回答、次のコマンドを使用して、var/www/forum/
を含む tarball を抽出できますforum/
。
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
) または作成される tarball (tar cf file.tar.bz2
)のいずれかです。
答え2
アーカイブを作成するときは、-C /var/www/
アーカイブの作成中に現在のディレクトリを /var/www に変更します。
tar jcf home/username/forum/forum.tar.bz2 -C /var/www/ forum
これにより、「フォーラム」フォルダがアーカイブの最上位レベルに配置され、次のコマンドを実行すると現在のフォルダに直接抽出されます。
tar jxf forum.tar.bz2 ./
答え3
迅速な(そしておそらく間違った)解決策は、tar を実行する前にディレクトリを変更するようにコマンドを変更することです。つまり、
cd /var/www/forum; tar jcf "home/username/forum/forum.tar.bz2" .